Object access will involve three memory areas: Java stack, Java heap, and method area.
Such as the following code:
Object objectRef = new Object();
Assuming this code appears in the method body, the "Object objectRef" part will be reflected in the local variables of the Java stack as a reference type Data appears. The "new Object()" part will be reflected in the Java heap, forming a structured memory that stores all instance data values of the Object type. The length of this memory depends on the specific type and the object memory layout implemented by the virtual machine. It is not fixed. In addition, the Java heap must also include address information that can find this object type data (such as object type, parent class, implemented interface, method, etc.). These data types are stored in the method area.
The reference type only stipulates a reference address pointing to the object in the Java virtual machine specification. It does not define the way in which this reference should be located and access the object location in the Java heap. Therefore, different virtual machines The access methods implemented by the machine may be different. There are two mainstream methods: using handles and direct pointers.
Handle access method: A piece of memory will be divided into the Java heap as a handle pool. What is stored in the reference is the handle address of the object, and the handle contains the object instance data and type data respective specific address information.
Pointer access method: What is directly stored in the reference variable is the address of the object, and part of the java heap object stores the object instance data, and the other part stores Object type data.
These two methods of accessing objects have their own advantages. The biggest advantage of using the handle access method is that the stable handle address is stored in the reference. When the object is moved, Only the instance data pointer in the handle needs to be changed, and the reference does not need to be changed. The biggest advantage of using the pointer access method is that it is fast. It saves the time overhead of pointer positioning. As far as the virtual machine is concerned, it uses the second method (direct pointer access).
The above is the content of Java virtual machine learning - object access. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!
Related articles:
Detailed explanation of Java virtual machine
In-depth understanding of Java virtual machine
Java Virtual Machine Learning - Class Loading Mechanism
Java Virtual Machine Learning - Object Memory Allocation and Recycling

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于平衡二叉树(AVL树)的相关知识,AVL树本质上是带了平衡功能的二叉查找树,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要整理了Stream流的概念和使用的相关问题,包括了Stream流的概念、Stream流的获取、Stream流的常用方法等等内容,下面一起来看一下,希望对大家有帮助。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)