在java虚拟机中对象是怎么进行的,JAVA是面向对象语言,类和对象是JAVA 的灵魂,JAVA中最简单的一个访问也会涉及JAVA栈,JAVA堆,方法区三个重要的内存区域之间的关联
如下面的这句代码;
Object obj = new Object();
在JAVA堆中创建对象 假设这句代码出现在方法体中,"Object objectRef” 这部分将会反映到Java栈的本地变量中,作为一个reference类型数据出现。而“new Object()”这部分将会反映到Java堆中,形成一块存储Object类型所有实例数据值的结构化内存,根据具体类型以及虚拟机实现的对象内存布局的不同,这块内存的长度是不固定。另外,在java堆中还必须包括能查找到此对象类型数据(如对象类型、父类、实现的接口、方法等)的地址信息,这些数据类型存储在方法区中。
要操作对象就必须要使用reference类型来操作对象,虚拟机之规定了一个指向引用并没有定义通过什么方式定位,主流的是句柄和指针
句柄访问方式:java堆中将划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据和类型数据各自的具体地址信息。
指针访问方式:reference变量中直接存储的就是对象的地址,而java堆对象一部分存储了对象实例数据,另外一部分存储了对象类型数据。
两种访问优点;使用句柄访问方式最大好处就是reference中存储的是稳定的句柄地址,在对象移动时只需要改变句柄中的实例数据指针,而reference不需要改变。使用指针访问方式最大好处就是速度快,它节省了一次指针定位的时间开销,就虚拟机而言,它使用的是第二种方式(直接指针访问)。
相关推荐
Java 虚拟机的垃圾收集是指在 Java 虚拟机中自动地回收不再使用的对象,以释放内存空间。垃圾收集可以是周期性的,也可以是根据需要进行的。Java 虚拟机提供了多种垃圾收集算法,如标记-清除算法、复制算法、标记-...
Java虚拟机指令集是虚拟机执行的基本操作单元,每条指令对应一个特定的操作,如加载和存储变量、算术运算、控制流程、对象创建和方法调用等。这些指令是无操作数的,它们的参数通常在操作数栈上找到。Java SE 7版的...
Java虚拟机还负责垃圾回收(Garbage Collection),即自动管理内存,释放不再使用的对象占用的内存,减轻程序员的负担。垃圾回收机制是Java语言与生俱来的特性之一,与C/C++等语言相比,Java的内存管理更简单、更...
和对象集合,它们为了快速访问而进行预加载 , 但它们可能包括很少被引用的对象。通过建立活跃性映射表去跟踪堆对象中的引用活 跃性,将其与设定的 t cold 相比较确定冷对象来对内存对象进行评估和识别,建立的访 问...
Java虚拟机(JVM,Java Virtual Machine)是Java平台的核心组成部分,它负责执行Java程序,为Java代码提供了跨平台的运行环境。Java虚拟机的概念始于Sun Microsystems,现在由Oracle公司继续发展和维护。JVM的设计...
《深入Java虚拟机(原书第2版)》,原书名《Inside the Java Virtual Machine,Second Edition》,作者:【美】Bill Venners,翻译:曹晓钢、蒋靖,出版社:机械工业出版社,ISBN:7111128052,出版日期:2003 年 9 ...
Java虚拟机(JVM)是Java程序运行的核心,它负责在不同操作系统上提供统一的运行环境。对于准备面试或希望深入理解JVM的开发者而言,了解JVM的各个组件和特性是必须的。本文将通过解析Java虚拟机面试题来深入探讨JVM...
### Java虚拟机规范SE8知识点概述 #### 一、引言 - **历史背景**:Java虚拟机(JVM)自1995年首次发布以来,已经发展成为支持多种编程语言的重要平台。 - **Java虚拟机定义**:Java虚拟机(JVM)是一种能够执行Java...
6. 安全机制:Java虚拟机设计了多种安全特性来确保Java程序的安全执行,包括类验证机制、字节码的验证检查、类和方法的访问控制等。 7. 异常处理:JVM定义了异常处理机制,包括try-catch-finally语句块以及异常的抛...
### 深入Java虚拟机知识点总结 #### 第一章 Java体系结构介绍 - **Java体系结构概述**:本章主要介绍了Java体系结构的基本概念及其组成部分。Java体系结构旨在为开发者提供一个统一、高效且跨平台的应用开发环境。...
### Java运行原理与Java虚拟机 #### 一、Java运行原理概述 Java作为一种跨平台的编程语言,其独特之处在于它的编译和解释过程。Java程序的执行涉及到两个主要步骤:首先是编译阶段,其次是解释执行阶段。 1. **...
### Java虚拟机的研究 #### 摘要 Java虚拟机(Java Virtual Machine,简称JVM)作为一种跨平台的运行环境,使得Java程序能够在多种操作系统上运行。本文基于对Kaffe虚拟机的研究,介绍了一个使用C语言开发的针对...
- **本地接口(Native Interface)**:连接JVM与操作系统,为Java提供访问本地系统库的能力。 - **垃圾回收器(Garbage Collector)**:自动释放不再使用的对象内存。 2. **内存模型**: - **方法区**:存储已经...
在介绍JDK15版本的Java虚拟机规范之前,需要先理解Java虚拟机(JVM)的基本概念。Java虚拟机是一种抽象的计算机,它提供了一个运行环境,使得Java程序能在不同的硬件和操作系统上以相同的方式运行。JVM规范详细定义...
深入讲解Java虚拟机系列之方法区 在 Java 虚拟机中,方法区是一块非常重要的区域,它存储了所有类的信息,包括类名、父类、接口、权限修饰符、常量池、变量信息、方法信息、静态变量等。方法区是 Java 虚拟机中的一...
《Java虚拟机规范(Java SE 8版)》是Oracle公司发布的官方文档,由Java虚拟机的创始人撰写,并由国内知名Java技术专家翻译,对于深入理解Java虚拟机的工作原理至关重要。 本书详细阐述了Java虚拟机的架构、内存...
### Java虚拟机(JVM)特性JAVA SE 7 #### 概述 《Java虚拟机特性JAVA SE 7.pdf》是一本详细介绍Java虚拟机(JVM)规范的书籍,针对Java SE 7版本。本书由Tim Lindholm、Frank Yellin、Gilad Bracha和Alex Buckley共同...
根据提供的文件信息,这里主要关注的是“Java虚拟机”这一主题。下面将深入解析与Java虚拟机相关的几个关键知识点。 ### Java虚拟机(JVM)概述 Java虚拟机(JVM)是运行Java程序的核心组件之一,它是一个虚构的...