`
wangwengcn
  • 浏览: 176256 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

对象访问的两种方式

    博客分类:
  • JVM
阅读更多

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


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


  
 这两种对象的访问方式各有优势,使用句柄访问方式的最大好处就是reference中存储的是稳定的句柄地址,在对象被移动(垃圾收集时移动对象是非常普遍的行为)时只会改变句柄中的实例数据指针,而reference本身不需要被修改。
 使用直接指针访问方式的最大好处就是速度快,它节省了一次指针定位的时间开销。Sun HotSpot虚拟机就是使用直接指针方式的。

分享到:
评论

相关推荐

    javascript面向对象之访问对象属性的两种方式分析.docx

    ### JavaScript面向对象之访问对象属性的两种方式分析 #### 一、引言 在JavaScript中,面向对象编程是一种常见的编程范式,它可以帮助开发者更好地组织和管理代码。访问对象属性是面向对象编程中最基本的操作之一...

    JS访问对象两种方式区别解析

    在JavaScript中,访问对象的属性和方法主要有两种方式:点号操作符(.)和方括号操作符([])。这两种方式在很多情况下是等价的,但它们之间也存在细微的区别,尤其在处理动态属性名和不存在的属性时。 1. 点号操作...

    JavaScript对象创建的九种方式

    本文将详细介绍JavaScript中九种常见的对象创建方式,帮助开发者更好地理解和应用这些技术。 1. **标准创建对象模式**: 这是最基础的对象创建方式,通过`new Object()`创建一个空对象,然后逐个为属性赋值,并添加...

    两种单例实现方式

    在 Java 中,单例模式可以通过两种方式来实现:类加载时进行对象的实例化和第一次访问时进行对象的实例化。 类加载时进行对象的实例化 在这种方式下,单例对象是在类加载时实例化的。下面是一个简单的示例代码: ...

    javascript面向对象之访问对象属性的两种方式分析

    访问对象的属性是面向对象编程的基础操作之一,而在JavaScript中访问对象属性主要有两种方式:直接访问和数组访问。本文将详细分析这两种访问方式。 首先,我们来看直接访问对象属性的方式。在JavaScript中,对象...

    用java访问domino对象

    这个包提供了两种方式来访问 Domino 对象:本地调用和远程调用。本地调用是指在 Notes 客户端或 Domino 服务器所在的计算机上运行 Java 程序,使用 JNI 对 Notes/Domino 的代码进行访问。远程调用是指通过 CORBA ...

    java用线程两种方式

    在Java中,创建和使用线程主要有两种方式,一种是继承Thread类,另一种是实现Runnable接口。这两种方式在使用上有一些区别,每种方式都有其特定的用法和特点。 首先,继承Thread类的方式。通过继承Thread类来创建...

    JAVA实现权限管理的两种方式六.doc

    "JAVA实现权限管理的两种方式六" 本文档主要讲解了JAVA实现权限管理的两种方式六,具体来说是通过filter、xml文件和用户信息表配合使用来实现权限管理的第一种方式。 Filter机制在权限管理中的应用 在Java Web...

    HTML页面访问ActiveXObject对象的方法和属性

    一个实现自定义ActiveX控件的demo TestActiveX.html页面中通过两种方式(OBJECT对象引用和ActiveXObject对象创建)访问ActiveX控件对象的方法和属性 解决 意外地调用了对象的方法和属性访问

    c++访问sqlserver的两种方法ODBC与ADO的调用demo

    总结来说,C++访问SQL Server可以通过ODBC和ADO两种方式,两者各有优缺点,适用于不同的应用场景。在VS环境下,开发者可以根据实际需求选择适合的数据库访问方法。通过上述代码示例,你可以了解如何在实践中使用这两...

    利用ADO对象访问数据库综述.pptx

    数据源的创建有两种方式:一种是直接在代码中指定数据库文件和驱动,另一种是通过ODBC数据源管理器预先创建数据源。直接在代码中连接数据库的好处是移植方便,但需处理路径问题;通过ODBC数据源则简化了代码,但迁移...

    ios 对象私有属性的访问和修改

    本文将详细探讨两种主要方法:Key-Value Coding(KVC)和Runtime技术。 首先,Key-Value Coding(KVC)是Objective-C提供的一种间接访问对象属性的方式,即使这些属性未公开为公共接口。KVC允许我们通过字符串键来...

    C++创建对象的两种方法

    在C++编程语言中,创建对象是面向对象编程的基础,主要分为两种方法:栈上的对象创建和堆上的对象创建。 **方法一:栈上创建对象** 这是C++中最常见的对象创建方式,通常在函数内部使用。语法形式如下: ```cpp ...

    JavaScript为对象原型prototype添加属性的两种方式

    在给定的文件内容中,提到了两种为对象原型添加属性的方法。 首先,我们来看第一种方式,这种方法是在函数的原型对象上直接添加属性或方法。在JavaScript中,每个函数都有一个prototype属性,这个属性是一个指针,...

    【JavaScript源代码】JavaScript中实现new的两种方式引发的探究.docx

    ### JavaScript中实现`new`操作符的两种方式 在JavaScript中,`new`操作符用于创建对象实例。当我们使用`new`操作符调用一个构造函数时,实际上发生了以下过程: 1. **创建一个空对象**:即创建一个新的对象实例。...

    C# OPC UA ,DA两种方式与PLC通讯源码

    本资源提供的"C# OPC UA, DA两种方式与PLC通讯源码"是基于C#语言实现的,能够帮助开发者了解和实践如何通过OPC与PLC(可编程逻辑控制器)进行通信。 1. OPC DA(Data Access) OPC DA(Data Access)是最早的OPC...

    javascript对象的创建和访问_.docx

    这两种方式在JavaScript中是等价的,可以根据具体场景选择合适的方法。点运算符在代码可读性上更强,而方括号运算符在需要动态属性名时更具优势。 在JavaScript中,由于函数也是一种数据类型,因此它可以作为对象的...

Global site tag (gtag.js) - Google Analytics