栈中对象定位的方式(句柄池,直接引用)
目录:
java虚拟机汇总
-
class文件结构分析
1).class文件常量池中的常量项结构
2). 常用的属性表的集合 -
类加载过程
1).类加载器的原理以及实现 -
虚拟机结构分析
1).jdk1.7和1.8版本的方法区构造变化
2).常量池简单区分 -
对象结构分析
1).压缩指针详解 - gc垃圾回收
- 对象的定位方式<<== 现在位置
在我们A a = new A();的时候,一般有两种方式使栈中的a指向堆中的对象
- 句柄池
a变量知保存了指向句柄池的指针,由句柄池中的实例数据和类型数据指针,间接的访问实例和类型数据 - 直接指向
a变量直接指向堆中实例数据对象保存方法区类型数据指针,直接的访问实例数据
1.句柄池
当对象在垃圾回收时,地址会发生变动,而我们只需改变句柄池中的引用不用去栈中修改,但访问对象需要经过两步 - 直接引用
当对象在垃圾回收时,地址会发生变动,我们需要改变栈中的引用,但访问对象只需要经过一步