对象的访问定位

6 篇文章 0 订阅

建立对象就是为了使用对象,我们的Java程序通过栈上的 reference 数据来操作堆上的具体对象。对象的访问方式有虚拟机实现而定,目前主流的访问方式有①使用句柄②直接指针两种:

  1. 句柄: 如果使用句柄的话,那么Java堆中将会划分出一块内存来作为句柄池,reference 中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据各自的具体地址信息;

  2. 直接指针: 如果使用直接指针访问,那么 Java 堆对象的布局中就必须考虑如何放置访问类型数据的相关信息,而reference 中存储的直接就是对象的地址。

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

java栈是针对每一个线程的,每一个线程都会有自己的栈,维护在其内部的引用就是本地变量表。

在java中每一个reference只是指向了一个内存块,其中并没有实例对象的内容,因此可能会出现这种情况:同一个线程多个引用只想了同一个内存地址,不同线程的引用指向了同一个内存地址。

因此当gc进行内存清理时,若将在java堆中的对象进行了移动,那么对于基于指针的对象定位方式就需要将他内部的全部引用进行更新,更新次数较多。但是基于句柄的更新方式则不同,由于全部对象都指向了一个句柄,而句柄中维护了一个指向对象的指针,因此在进行内存整理时,只需要更新句柄中实例的内容就可以了。

当进行对象访问时,基于指针的对象定位方式可以直接获取到对象的内容,但是基于句柄的需要两步才能获取到对象内容,时间上有所损失。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要学习HTML DOM对象关于定位的内容,可以从了解HTML DOM对象的概念开始,然后研究DOM操作,了解DOM节点、属性和方法等。此外,还可以研究如何使用CSS选择器来查找DOM元素,以及如何使用JavaScript来操作它们。 ### 回答2: 学习HTML DOM对象关于定位的内容可以通过以下几种途径: 1. 理解HTML DOM的基本概念:首先需要理解HTML DOM(文档对象模型)是一种将HTML文档表示为树状结构的方式,可以以树的形式访问和操作HTML元素。了解DOM的基本概念有助于理解DOM对象定位和操作。 2. 学习HTML DOM对象的层次结构:掌握HTML DOM对象的层次结构非常重要。可以通过查看HTML文档的源代码或者使用浏览器的开发者工具来了解DOM层次结构。了解元素的父元素、子元素、兄弟元素等关系,可以帮助我们更好地定位DOM对象。 3. 使用选择器定位DOM对象:了解如何使用选择器来定位DOM对象是非常重要的。可以使用CSS选择器或JavaScript DOM方法来选择指定的DOM对象。例如,使用getElementById()方法可以通过元素的id属性来定位DOM对象。 4. 学习DOM对象的属性和方法:掌握DOM对象的常用属性和方法可以帮助我们操作DOM对象。例如,使用DOM对象的style属性可以设置元素的样式,使用DOM对象的innerHTML属性可以获取或设置元素的内容。 5. 练习实践和查阅文档:学习DOM对象定位内容需要不断的练习和实践。可以尝试编写一些简单的HTML页面,然后使用DOM对象来操作和定位元素。同时,及时查阅相关的文档和教程,如MDN(Mozilla开发者网络)上的DOM文档,可以帮助我们进一步理解和学习DOM对象定位内容。 总结起来,学习HTML DOM对象关于定位的内容需要理解DOM的基本概念和层次结构,掌握选择器和DOM对象的属性方法,并通过实践和查阅文档来深入学习和理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值