类加载机制面试至今,除了农行武研所都没有问到过,但是不能存在侥幸心理。今天来系统的复习一下
1.什么时候触发类加载?
1)new一个实例对象时,隐式调用
2)loaderClass和反射中的forName()方法等
3)调用类的静态变量或者静态方法
4)创建该类子类的实例对象
5)java命令运行该类的时候
2.从哪里加载.class文件?
1)本地磁盘
2)网络加载
3)从压缩文件中jar包
2.类加载的步骤
java编译器将java文件变成了.class文件,类加载过程就是将这些.class文件加载到JVM中,
类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。
而类加载主要分为以下几个步骤:加载、链接(验证、准备、解析)、初始化