- 1
- 0
- 约3.67千字
- 约 6页
- 2026-08-24 发布于河北
- 举报
Java类加载机制高频面试题及详细答案(实战向)
一、基础概念类(初级必问)
1.什么是类加载?什么时候会触发类加载?
答案:
类加载就是JVM把磁盘上的.class字节码文件,加载到内存中,转换成可以直接使用的java.lang.Class对象的过程。简单说,就是把静态的文件数据,变成内存中的运行时数据。
触发类加载的核心场景(主动加载,会执行初始化):
new创建对象实例
调用类的静态方法、静态变量
使用反射Class.forName()
初始化子类时,会优先加载父类
程序启动入口main方法所在类
被动引用不会触发初始化:比如仅声明数组、常量编译期替换、父类静态变量子类访问,只会加载不会初始化。
2.类加载的完整过程分为哪几步?各自做什么?
答案:
整体分为5个阶段:加载、验证、准备、解析、初始化。日常面试重点考后四个,合称链接阶段。
加载:读取.class文件二进制数据,在内存方法区生成Class对象,此时类结构已经有了,但是未校验、未赋值。
验证:保证字节码合法、安全,避免恶意/错误字节码破坏JVM,包含文件格式验证、元数据验证、字节码验证、符号引用验证。
准备:给类静态变量分配内存,赋默认初始值(int=0、boolean=false、引用=null),不会赋代码里写的初始值。
解析:把代码里的符号引用(字面量地址)替换成直接的内存指针引用,运行时可以直接定位
您可能关注的文档
最近下载
- ISO9001质量管理体系要求覃海元吴亨ISO9001质量.pptx VIP
- ISO 9001(FDIS)-2026《质量管理体系——要求》之25:“8.5生产和服务提供-8.5.1生产和服务提供的控制”条款应用(实施)专业指导材料(雷泽佳编写2026A0).pdf VIP
- ISO 9001(FDIS)-2026《质量管理体系——要求》之27:“8.5生产和服务提供-8.5.3顾客或外部供方的财产”条款应用(实施)专业指导材料(雷泽佳编写2026A0).pdf VIP
- ISO 9001(FDIS)-2026《质量管理体系——要求》之30:“8.5生产和服务提供-8.5.6变更控制”条款应用(实施)专业指导材料(雷泽佳编写2026A0).pdf VIP
- ISO 9001(FDIS)-2026《质量管理体系——要求》之26:“8.5生产和服务提供-8.5.2标识和可追溯性”条款应用(实施)专业指导材料(雷泽佳编写2026A0).pdf VIP
- ISO 9001(FDIS)-2026《质量管理体系——要求》之28:“8.5生产和服务提供-8.5.4防护”条款应用(实施)专业指导材料(雷泽佳编写 2026A0).pdf VIP
- ISO 9001(FDIS)-2026《质量管理体系——要求》之29:“8.5生产和服务提供-8.5.5交付后活动”条款应用(实施)专业指导材料(雷泽佳编写2026A0).pdf VIP
- 教学质量保障方案.docx VIP
- ISO 9001(FDIS)-2026《质量管理体系——要求》之24:“8运行-8.4外部提供的过程、产品和服”条款应用(实施)专业指导材料(雷泽佳编写2026A0).pdf VIP
- 国能陕西新能源佳县5万千瓦风电项目水保验收报告.docx VIP
原创力文档

文档评论(0)