首页 > 代码库 > JVM对象
JVM对象
对象
Java虚拟机采用自动的内存管理和自适应的优化策略。但了解java虚拟机的运行机制和优化策略,写出适合java虚拟机管理的程序对性能提升是有意义的。
逃逸分析:对象的作用范围只在本线程范围,如方法(包括静态方法)中new 对象,这个对象是不可能被其它线程共享。可以直接在栈上分配内存。栈上数据在出栈后会释放内存,不需要GC回收。
大对象:虚拟机栈容量有限,大的对象会直接在堆上分配。堆内存回收频率低,影响范围和时间长。避免大的对象编写。
对象在虚拟机中设计至关重要,连接栈帧、堆、锁信息、常量池信息、编译及优化。
这里是对对象的简介,由于时间和水平,目录如下,此后会继续写Hotspot角度对象详细设计。
对象 3
对象的创建 3
1. 类加载检查 4
2. 对象分配内存 4
3. 并发处理 5
4. 内存空间初始化 5
5. 对象设置 5
6. 执行init() 5
对象内存布局 6
对象头 6
实例数据 6
对齐填充 6
对象访问定位 7
对象的三种状态: 9
引用标记 9
引用计数法 9
可达性分析算法 10
支配树 10
对象的引用类型 11
强引用(StrongReference) 12
软引用(SoftReference) 14
弱引用(WeakReference) 15
虚引用(PhantomReference) 16
其它API 17
回收 18
对象回收 18
JVM对象