- JVM的内存管理和垃圾回收机制。
- Java类的编译、加载和执行。
一、JVM的内存管理和垃圾回收机制。
参考:http://blog.csdn.net/seu_calvin/article/details/51892567
1、java虚拟机内存区域与内存溢出异常
(1)运行时数据区域
(2)对象访问定位: 通过句柄、直接指针
blog.csdn.net/xlgen157387/article/details/45044655
2、java GC垃圾回收
(1)判断对象已死吗?引用计数、可达性分析
(2)四种引用类型
(3)垃圾回收算法
(4)分代回收
(5)HotSport算法实现
(6)常见垃圾收集器
java GC系列:http://www.importnew.com/13504.html
http://www.cnblogs.com/fefjay/p/6297340.html
二、Java类的编译、加载和执行
参考:http://blog.csdn.net/seu_calvin/article/details/51404589
1、Java编译
编译过程主要有三步:
- 词法分析和输入到符号表
- 注解处理
- 语义分析和生成字节码
详细过程:
源代码文件*.java -> 词法分析器 -> tokens流 -> 语法分析器 -> 语法树/抽象语法树 -> 语义分析器 -> 注解抽象语法树 -> 字节码生成器 -> JVM字节码文件*.class
2、Java类加载 参考:http://blog.csdn.net/seu_calvin/article/details/52301541
(1)类加载过程
类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示:
(2)双亲委派模型
Tomcat类加载架构、OSGi类加载架构
http://www.cnblogs.com/fefjay/p/6305499.html