首页 > 其他分享 >对象访问方式

对象访问方式

时间:2023-03-19 23:36:43浏览次数:28  
标签:java 方式 reference 对象 句柄 Object 访问

Object objectRef = new Object();
假设这句代码出现在方法体中,Object objectRef这部分将会反映到Java栈的本地变量中,作为一个reference类型数据出现。而new Object()这部分将会反映到Java堆中,形成一块存储Object类型所有实例数据值的结构化内存,根据具体类型以及虚拟机实现的对象内存布局的不同,这块内存的长度是不固定。另外,在java堆中还必须包括能查找到此对象类型数据(如对象类型、父类、实现的接口、方法等)的地址信息,这些数据类型存储在方法区中。

reference类型在java虚拟机规范里面只规定了一个指向对象的引用地址,并没有定义这个引用应该通过那种方式去定位,访问到java堆中的对象位置,因此不同的虚拟机实现的访问方式可能不同,主流的方式有两种:使用句柄直接指针

句柄访问方式

java堆中将划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据和类型数据各自的具体地址信息。

指针访问方式

reference变量中直接存储的就是对象的地址,而java堆对象一部分存储了对象实例数据,另外一部分存储了对象类型数据。

 小结

这两种访问对象的方式各有优势,使用句柄访问方式最大好处就是reference中存储的是稳定的句柄地址,在对象移动时只需要改变句柄中的实例数据指针,而reference不需要改变。使用指针访问方式最大好处就是速度快,它节省了一次指针定位的时间开销,虚拟机使用的是直接指针访问。

 

标签:java,方式,reference,对象,句柄,Object,访问
From: https://www.cnblogs.com/zhengbiyu/p/17234807.html

相关文章

  • 面向对象三大特性:封装,继承
    封装:  为什么要隐藏属性:----------------------------------------------------------------------------------------目的的是为了隔离复杂度,例如ATM程序的取款功能......
  • Kubernetes安装篇(下):基于Kubeadm方式的集群部署
    Kubernetes安装篇(下):基于Kubeadm方式的集群部署2022-05-22 346举报简介: 在实际生产环境中,Kubernetes环境就比这复杂的多,起码也是集群起步,因此,本文将从生产环境出发,为你......
  • 算法思维:思考问题的一种方式
    方法论:万物皆朴素的第一性原理几乎任何领域的任何问题的解决方案,都可以看作是“某个结构上的朴素方法的优化“。计算机只能处理规模有限的问题,在给定规模且不考虑效率的......
  • java IO整理及读写文件常见方式
    一:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在设备间传输称之为流。流的本质是数据传输,根据数据传输的特性将流区分为各......
  • 【VTK学习笔记】VTK基本数据结构_3.2数据对象和数据集
    任务:把几何结构和拓扑结构加入到数据集中1.无拓扑结构1#include<vtkSmartPointer.h>2#include<vtkPoints.h>//几何结构3#include<vtkPolyData.h>//数据集......
  • 如何在Power BI DAX Studio 中测试验证行级别安全性和对象级别安全性
    行级别安全性可控制用户访问指定行,对象级安全性可控制用户访问指定的列和表。下面通过DAXStudio工具测试验证行级别安全性和对象级安全性的权限控制。01设置PowerBI中的......
  • 对象创建过程
    首先进行类加载,然后会对象进行逃逸分析,如果对象引用不会逃逸,那么进行栈上分配。编译器分层编译:C1、C2。C2下才会有栈上分配的优化,且不同虚拟机优化方式不一样,Hotspot虚拟......
  • nacos原理(二)更新Spring容器对象
    Spring容器感知分为两部分。第一部分是更新Environment、第二部分是注册到Spring容器的对象感知。1.更新Environment上文知道对于配置发生改变会调用发送newRefres......
  • 右键菜单添加exe快捷方式
    1.问题描述想要在右键菜单中添加快捷功能,如图中的GitBushHere,可以直接通过左键在当前路径(右键点击的位置)打开这个程序。2.添加过程2.1打开注册表编辑器通过Win......
  • 设计模式(二十五)----行为型模式之访问者模式
    1概述定义:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。2结构访问者模式包含以下主要角色:抽......