`
ewth126
  • 浏览: 8214 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

从java的虚拟机说对象的相同

 
阅读更多
    最近一直在看云计算方面的资料,裸辞之后实在是很迷茫,不知道现在的公司需要什么样的人才。我不是一个很会表现自己的人,所以干脆先沉下心来搞搞学习,顺便准备2014的研究生,每天就更新一两篇博客,来记录偶尔有的感受和对之前知识的认识。
    之前有个哥们回复到底什么样的对象才是相同的。
    如果是学习过C语言的同志们,应该能够很清楚地回答这个问题。那就是这个对象在内存上的物理地址是相同的,并且他们的类型也是相同的,从细节上说他们就是同一个对象。唯一不同的部分是他们的引用(或者从我的习惯,我会叫他句柄)。
    最粗糙的说,java的内存区可以分为“堆”和“栈”,那么就按照这种最简单的方法来区分来讨论上面的问题。
    java堆(java heap)是内存中最大的一块,用于存放对象实例。
    java栈存放对象引用,以及编译期可见的各种基本数据类型。
    (还有其他的内存区域,这里只考虑对象访问需要操作的区域。)
    对象相同,就是说我们在java堆上的对象实例是相同的。但是对象引用不一定相同。
    可能有些同学不清楚什么叫对象的引用,什么叫对象。我画一个图举个例子来表示一下:
例子就用
String str=new String("123");//两个对象
String str1=str;//指向引用对象

在这里这两对象就是相同的。
String str就创建了一个引用对象, 后面的new String()创建了一个对象,"123"也是一个对象,这里发生这样的问题和String是final是相关的。
在第二句,String str1创建了一个引用对象,然后把str引用的地址(或者是句柄地址,在sun的虚拟机上传递的是地址)传递给了str1.因此str1和str指向同一个对象。
  • 大小: 27.4 KB
0
0
分享到:
评论

相关推荐

    Java虚拟机规范中文版(JavaSE7).pdf

    Java虚拟机规范(Java SE 7版)是定义JVM行为的官方文档,确保所有Java平台的实现遵循相同的规则,以提供跨平台的兼容性和一致性。这份规范涵盖了虚拟机的结构、字节码编译、字节码文件格式、类加载机制以及虚拟机...

    Java虚拟机规范中文版.pdf

    Java虚拟机规范定义了这些指令的语义和操作,确保了不同平台上的JVM都能正确执行相同的字节码。 为了更好地理解Java虚拟机的内部工作原理,开发者通常需要对JVM规范有深入的认识。例如,对JVM的垃圾回收算法的了解...

    Java虚拟机规范PDF

    Java虚拟机是运行所有Java程序的抽象计算机,它遵循一定的规范,这样相同的Java字节码就可以在任何遵循此规范的机器上运行。JVM的主要职责是加载字节码、执行字节码指令以及管理内存。 #### 2. 类加载器 JVM中的类...

    JDK15java虚拟机规范

    Java虚拟机是一种抽象的计算机,它提供了一个运行环境,使得Java程序能在不同的硬件和操作系统上以相同的方式运行。JVM规范详细定义了JVM的行为,包括数据类型、运行时数据区域、指令集等。 首先,JVM规范中提到的...

    Java 虚拟机规范.pdf

    - Java的“一次编写,到处运行”的特性依赖于JVM在不同操作系统上实现相同的内存模型和执行模型。 8. **性能优化**: - 理解JVM规范有助于对Java程序进行性能调优,如调整堆大小、设置垃圾回收参数等。 Java ...

    Java虚拟机运行机制

    Java虚拟机的规范对数据类型的内部格式进行了严格规定,使得各种Java虚拟机的实现对数据的解释是相同的,从而保证了Java的与平台无关性和可移植性。 Java虚拟机的实现需要深刻理解Java虚拟机的规范。Java虚拟机的...

    支持复合对象的Java虚拟机内存管理技术研究.pdf

    支持复合对象的Java虚拟机内存管理技术研究 在面向对象系统中,对象是研究的基本单位,对象可以是简单的整数或复杂的飞机等。对象具有状态和操作,对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。...

    java中的栈(深层了解java虚拟机对对象的内存分布)

    ### 深层解析Java虚拟机中的栈与堆:对象的内存分布 #### 核心概念:栈与堆的本质及作用 在Java编程语言中,理解栈(stack)和堆(heap)的概念及其工作原理对于深入掌握Java虚拟机(JVM)如何管理内存至关重要。栈和堆...

    深入java虚拟机 中文版 pdf

    《深入Java虚拟机》这本书是IT领域中关于Java虚拟机(JVM)的深度解析之作,主要聚焦于JVM的工作原理、内部结构以及优化技巧。Java虚拟机作为Java语言的核心组件,其性能直接影响到Java应用程序的运行效率。因此,对...

    深入理解Java虚拟机学习笔记借鉴.pdf

    虚拟机栈的生命周期与线程相同,每个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。 堆区是 JVM 的最大的一块内存区域,是被线程共享的区域,在虚拟机启动时创建。所有类的实例...

    java虚拟机规范

    根据给定的文件标题“Java虚拟机规范”及其描述“Java虚拟机规范,了解虚拟机原理”,我们可以深入了解Java虚拟机(JVM)的核心概念和技术细节。虽然提供的部分内容未能直接展示文本内容,但从标题和描述中可以推断出...

    JVM内幕:java虚拟机详解

    ### JVM内幕:java虚拟机详解 #### 一、概述 Java虚拟机(JVM)是运行Java应用程序的核心组件,它提供了一个可移植、安全且高性能的环境。本文将深入探讨JVM的内部架构及其各个组成部分的功能。 #### 二、Java虚拟机...

    Java虚拟机分析(Java虚拟机)

    ### Java虚拟机分析 #### 一、Java虚拟机概述 Java虚拟机(Java Virtual Machine,简称JVM)作为Java平台的核心组成部分,对于确保Java程序能够跨平台运行起着至关重要的作用。本文旨在深入探讨JVM的基本概念、...

    Java虚拟机内存区域模型

    Java虚拟机内存区域的管理是Java开发中最重要的内容之一,对于Java开发者来说,了解Java虚拟机内存区域模型是非常必要的。只有了解了Java虚拟机内存区域模型,才能更好地编写高效、可靠的Java程序。 程序计数器是...

    Java 虚拟机JVM内存模型

    ### Java 虚拟机JVM内存模型知识点 #### 1. JVM概述 ##### 1.1 Java的特性与JVM的应用 Java语言的特性包括跨平台性、面向对象、安全性等。JVM是Java程序能够跨平台运行的关键,它负责将Java源代码转换成与平台无关...

    Java虚拟机实现原理分析.pdf

    Java虚拟机(JVM)是实现Java程序跨平台运行的关键技术,它的实现原理和工作过程是Java语言能够运行在各种不同硬件平台的基础。JVM的存在使得Java程序员可以编写一次代码,到处运行,这得益于JVM提供的一套平台无关...

Global site tag (gtag.js) - Google Analytics