java的GC机制--java对象的访问方
来源:互联网 发布:sql去重distinct 编辑:程序博客网 时间:2024/06/06 19:52
一般来说,一个java的引用访问涉及到三个内存区域:JVM栈、堆、方法区;
以最简单的本地变量引用为例: Object obj = new Object();
Object obj是一个本地引用,存储在JVM栈的本地变量表中,表示一个reference类型的数据;
new Object()作为一个实例对象,存储在堆区中
堆中还记录了Object类的类型信息(接口、field、方法、对象类型等)的地址,这些地址所执行的数据存储在方法区中。在java虚拟机规范中,对于通过reference类型引用具体对象方式并未做规定,目前主流的实现方式有两种:
1、通过句柄访问
通过句柄访问的实现方式中,JVM堆中会有一块区域作为专门的句柄池,储存相关句柄池所执行的实例数据地址(包括在堆中的地址和方法区中的地址)。这种实现方法由于用句柄表示地址,应此十分稳定。
2、通过直接指针访问:
通过直接指针访问的方式中,reference中直接储存的就是对象在堆中的实际地址,在堆中储存的信息还包括在方法区中相应类型数据。这种方法最大的优势就是速度快,在HotSpot虚拟机中就是采用的这种方式。
阅读全文
0 0
- java的GC机制--java对象的访问方
- Java的GC机制
- Java的GC机制
- Java的GC机制
- Java的GC机制
- Java的GC机制
- Java的GC机制
- Java的GC机制
- Java的GC机制
- Java的GC机制
- Java的GC机制
- Java的GC机制
- 【转载】Java的GC机制
- Java的GC机制详解
- Java的GC回收机制
- java的GC机制--javaGC机制
- java的GC机制--java的内存分配机制
- Java的垃圾回收器GC机制
- Windows用pip安装scrapy出现Microsoft Visual C++ 14.0 is required错误
- Autoware 编译时 armadillo 库安装
- 学打字
- Mac配置Maven
- 完美解决日期天数加减问题
- java的GC机制--java对象的访问方
- CSS精灵
- VS2015编译OSG第三方库
- 德州扑克牌型算法
- SVM学习(三):线性分类器的求解
- Android
- 企业专用ms 17 010检测器
- 如何读懂DataSheet
- 确定msm8937+android7.1采用的dtb文件