Java类加载机制高频面试题及详细答案(实战向).docxVIP

  • 1
  • 0
  • 约3.67千字
  • 约 6页
  • 2026-08-24 发布于河北
  • 举报

Java类加载机制高频面试题及详细答案(实战向).docx

Java类加载机制高频面试题及详细答案(实战向)

一、基础概念类(初级必问)

1.什么是类加载?什么时候会触发类加载?

答案:

类加载就是JVM把磁盘上的.class字节码文件,加载到内存中,转换成可以直接使用的java.lang.Class对象的过程。简单说,就是把静态的文件数据,变成内存中的运行时数据。

触发类加载的核心场景(主动加载,会执行初始化):

new创建对象实例

调用类的静态方法、静态变量

使用反射Class.forName()

初始化子类时,会优先加载父类

程序启动入口main方法所在类

被动引用不会触发初始化:比如仅声明数组、常量编译期替换、父类静态变量子类访问,只会加载不会初始化。

2.类加载的完整过程分为哪几步?各自做什么?

答案:

整体分为5个阶段:加载、验证、准备、解析、初始化。日常面试重点考后四个,合称链接阶段。

加载:读取.class文件二进制数据,在内存方法区生成Class对象,此时类结构已经有了,但是未校验、未赋值。

验证:保证字节码合法、安全,避免恶意/错误字节码破坏JVM,包含文件格式验证、元数据验证、字节码验证、符号引用验证。

准备:给类静态变量分配内存,赋默认初始值(int=0、boolean=false、引用=null),不会赋代码里写的初始值。

解析:把代码里的符号引用(字面量地址)替换成直接的内存指针引用,运行时可以直接定位

最近下载

文档评论(0)

1亿VIP精品文档

相关文档