1、类加载器系统:
2、类加载器的执行过程: 加载、链接、初始化
1、加载:类加载器从磁盘中将字节码文件class文件加载进内存。
2、链接(验证、准备、解析):字节码文件中魔数是特定的标识。cofe babe。
3、初始化:模板初始化。
3、加载:
4、链接:
准备:编译时给变量分配内存,且设置类变量的默认初始值。比如 int = 1,实际上是int i = 0,默认是0,等到初始化时才分配1.
解析:通过javap -v xxx 可以看到字节码中都是一些符号的引用,比如加载一个sout,但是要用到System,Object等等,为了减少Class文件的大小,编译时使用符号引用即可。等待加载解析的时候再从常量池表查找,然后将符号引用转换为真实的引用,所以常量池中存在的一部分是字面量,一部分是符号引用。
5、初始化:
6、加载器的类型: