对象的拜访定位
支流的拜访形式次要有句柄和间接指针两种从虚拟机栈上拜访堆上的对象数据
1. 通过句柄拜访对象
如果应用句柄拜访,Java堆会划分出一块内存作句柄池;
reference中存储的就是对象的句柄地址;
而句柄中蕴含了对象实例数据与类型数据各自的具体地址信息:
优缺点:
毛病: 句柄形式,应用代理,拜访速度慢一点;
长处: 不必频繁批改指针(gc回收对象,实例对象挪动很失常);
2. 通过间接指针拜访对象
栈中援用数据, 间接保留着堆内存中实例对象的地址(HotSpot所应用的)
java堆对象须思考如何搁置拜访类型数据信息,而reference中存储的间接就是堆内存的对象地址;
优缺点:
长处: 速度快, 对象的拜访很频繁,间接定位缩小了一次指针定位的开销(定位句柄),从而千里之行;始于足下,在晋升拜访性能上做出的成果也是极其能够的
毛病: 堆内存中对象内存地址变动后, 须要频繁批改指针