java对象的访问方式 博客分类: java虚拟机 java虚拟机
程序员文章站
2024-02-20 12:58:58
...
java需要通过栈上的reference数据来操作堆上的具体对象,目前主流有两种方式:
1.使用句柄
使用句柄的话,java堆将会划分一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与对象类型数据各自的具体地址信息
2.直接指针
reference中存储的直接就是对象地址
两种方式各有优势,使用句柄访问最大好处是reference中存储的稳定的句柄地址,当对象被移动时(垃圾回收机制移动对象非常普遍)只会改变句柄中的实例数据指针,而reference本身不需要修改。
使用直接指针访问最大好处是速度更快,节省了一次指针定位的时间开销,由于对象的访问十分频繁,因此此类开销积少成多之后也是一项非常可观的执行成本,sun HotSpot使用的直接指针方式访问对象,但从整个软件开发范围来看,各种语言和框架使用句柄来访问也十分常见。
推荐阅读
-
java对象的访问方式 博客分类: java虚拟机 java虚拟机
-
Java事件处理机制- 事件监听器的四种实现方式 博客分类: J2SE学习 JavaSwingGmailCC++
-
CXF进行WebService客户端调用的两种方式 博客分类: java
-
CXF进行WebService客户端调用的两种方式 博客分类: java
-
11、java读取文件的几种方式 博客分类: IO javajava7
-
&&运算符和||运算符的优先级问题 博客分类: Java 虚拟机JDK单元测试JVMGoogle
-
&&运算符和||运算符的优先级问题 博客分类: Java 虚拟机JDK单元测试JVMGoogle
-
Effective Java读书笔记、感悟——2.1对所有对象都通用的方法之equals 博客分类: Java_SE effectivejava对象通用方法equals
-
《effective java》之二:对于所有对象都通用的方法 博客分类: Java effectivejava
-
Java虚拟机处理异常的最佳方式