JVM类加载机制
面试题
能说一下类的生命周期吗?
- 类的生命周期分为七个阶段:加载、验证、准备、解析、初始化、使用和卸载
- 其中验证、准备、解析三个部分统称为连接
类加载的过程知道吗?
- 获取类的二进制字节流
- 结构化静态存储结构
- 在内存中生成 Class 对象
类加载器有哪些?
- 启动类加载器:加载 Java 核心类库
- 扩展类加载器:加载 Java 的扩展库
- 系统类加载器:根据 Java 应用的类路径来加载类
- 自定类加载器:用户通过继承 ClassLoader 类的方式自定义类加载器
什么是双亲委派机制?
- 类加载器收到类加载的请求的时候,不会自己尝试加载,而是将请求委托给父类加载器完成
- 每层的类加载器都向上委托,直到加载请求传送到最顶层的启动类加载器
- 只有父加载器反馈自己无法完成这个加载请求时,子加载器才会尝试自己完成加载
为什么要用双亲委派机制?
- 避免类重复加载,保证应用程序的稳定
如何破坏双亲委派机制?
- 重写 loadClass() 方法