十年架构师为你详解24道Jvm面试题,轻松备战金三银四跳槽季( 十 )

  • 1)如果类存在直接的父类并且这个类还没有被初始化 , 那么就先初始化父类;

  • 2)如果类中存在初始化语句 , 就依次执行这些初始化语句 。

类的加载是由类加载器完成的 , 类加载器包括:根加载器(BootStrap)、扩展加载器(Extension)、系统加载器(System)和用户自定义类加载器(java.lang.ClassLoader的子类) 。

从Java 2(JDK 1.2)开始 , 类加载过程采取了父亲委托机制(PDM) 。 PDM更好的保证了Java平台的安全性 , 在该机制中 , JVM自带的Bootstrap是根加载器 , 其他的加载器都有且仅有一个父类加载器 。 类的加载首先请求父类加载器加载 , 父类加载器无能为力时才由其子类加载器自行加载 。 JVM不会向Java程序提供对Bootstrap的引用 。 下面是关于几个类加载器的说明: