`

深入理解java引用类型

 
阅读更多
请看原文地址
http://www.cnblogs.com/SilentCode/p/4858790.html


在Java中类型可分为两大类:值类型与引用类型。值类型就是基本数据类型(如int ,double 等),而引用类型,是指除了基本的变量类型之外的所有类型(如通过 class 定义的类型)。所有的类型在内存中都会分配一定的存储空间(形参在使用的时候也会分配存储空间,方法调用完成之后,这块存储空间自动消失), 基本的变量类型只有一块存储空间(分配在stack中), 而引用类型有两块存储空间(一块在stack中,一块在heap中)

简单类型是按值传递的

引用其实就像是一个对象的名字或者别名 (alias),一个对象在内存中会请求一块空间来保存数据,根据对象的大小,它可能需要占用的空间大小也不等。访问对象的时候,我们不会直接是访问对象在内存中的数据,而是通过引用去访问。引用也是一种数据类型,我们可以把它想象为类似 C++ 语言中指针的东西,它指示了对象在内存中的地址——只不过我们不能够观察到这个地址究竟是什么。

如果我们定义了不止一个引用指向同一个对象,那么这些引用是不相同的,因为引用也是一种数据类型,需要一定的内存空间(stack,栈空间)来保存。但是它们的值是相同的,都指示同一个对象在内存(heap,堆空间)的中位置。
分享到:
评论

相关推荐

    拓胜技术专家教你如何深入理解Java四种引用类型

    为了深入理解Java内存管理,了解这四种引用类型是至关重要的。 首先,我们要了解,在JDK1.2版本之前,Java中的引用只有强引用一种,也就是说,如果一个对象有一个强引用指向它,那么这个对象就不会被垃圾收集器回收...

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

     作者以易于理解的方式深入揭示了java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益!  本书共分20章,第1-4章解释了java虚拟机的体系结构,包括java栈、堆、方法区、执行...

    深入理解JAVA虚拟机实用技巧案例讲解.ppt

    **深入理解JAVA虚拟机实用技巧案例讲解** Java虚拟机(JVM)是Java程序的核心运行环境,它负责解析字节码并执行Java程序。在实际开发中,了解JVM的工作原理和优化技巧对于提高程序性能至关重要。以下是一些关键知识...

    浅析Java引用类型和方法参数传递

    ### 浅析Java引用类型和方法参数传递 #### 一、引言 在Java编程语言中,理解数据类型的处理方式对于编写高效、可维护的代码至关重要。本文将深入探讨Java中的引用类型及其如何影响方法参数的传递机制。通过具体实例...

    Java中的引用类型详解:强引用、软引用、弱引用与虚引用

    深入理解Java中的引用类型对于有效地管理内存和提高应用程序的性能至关重要。根据具体的场景,选择适当的引用类型是优化程序的关键一步。希望本文能够为您提供在Java引用类型的使用上清晰的指导

    Java引用数据类型详解:深入理解对象和数组

    通过理解和掌握类、接口、数组、字符串和集合等引用数据类型,Java程序员可以构建功能强大且灵活的应用程序。这些引用数据类型不仅增强了代码的可读性和可维护性,还提高了程序的性能和效率。通过实际的代码示例,...

    深入JAVA虚拟机 不那么完美的第二版.pdf.zip

    虽然《深入JAVA虚拟机》的第二版可能在物理形态上有些许不足,但其内容依然对理解JVM的运作机制有着重要的指导意义。学习这些知识点,有助于Java开发者提升代码的运行效率,解决内存问题,以及进行性能优化。

    Java 并发核心编程

    本文旨在帮助Java开发者深入理解并发的核心概念,并掌握如何有效地运用这些概念。 #### 二、Java并发核心概念 在深入讨论具体技术细节之前,我们先了解一些关键的Java并发概念: 1. **Java Memory Model (JMM)**:...

    深入理解Java虚拟机1

    深入理解Java虚拟机,首先要明白Java虚拟机(JVM)的角色和功能。JVM是Java平台的核心组成部分,它负责执行Java程序,提供了一个跨平台的运行环境。在Java的发展历程中,Classic VM作为世界上第一款商用的Java虚拟机...

    深入分析java中的类型转换

    ### 深入分析Java中的类型转换 #### 类型转换概述 类型转换是Java编程语言中的一个重要特性,它使得程序可以在不同类型的数据之间进行转换。在Java中,类型转换主要分为两大类:**隐式自动类型转换**和**强制手动...

    深入理解java构造器机理

    “深入理解Java构造器机理” 在 Java 编程语言中,构造器是一种特殊的方法,用于初始化对象的创建。它是 Java 类中最重要的一个概念。下面将深入讨论构造器的机理、执行顺序、作用及与其他概念的区别。 一、构造器...

    深入理解Java内存模型.程晓明(带书签文字版).pdf

    如果 final 域是引用类型 60 为什么 final 引用不能从构造函数内“逸出” 63 final 语义在处理器中的实现 65 JSR-133 为什么要增强 final 的语义 65 总结 66 处理器内存模型 66 JMM,处理器内存模型与顺序一致...

    Java引用类型编程开发技术共13页.pdf.zip

    在这里,我们将对Java引用类型的一些关键知识点进行详细的阐述。 1. 类(Class):Java是一种面向对象的语言,类是创建对象的蓝图。它定义了对象的属性(数据成员)和行为(方法)。通过定义类,我们可以创建具有...

    Java中的引用类型:深入理解与应用实践

    Java中的引用类型为开发者提供了灵活的对象生命周期管理机制。通过合理使用强引用、软引用、弱引用和虚引用,可以有效地管理内存,减少内存泄漏的风险,并提高程序的性能。开发者应该根据具体的应用场景和需求,选择...

    6.java引用类型.zip

    多态性是Java引用类型的一个关键特性,允许你用父类引用指向子类对象。这使得代码更加灵活,能够处理不同类型的对象。例如: ```java Animal animal = new Dog(); // 父类引用指向子类实例 animal.eat(); // 调用...

    深入理解Java 虚拟机 原代码

    《深入理解Java虚拟机》是Java开发者深入了解JVM(Java Virtual Machine)的必备经典书籍,其第二版提供了原代码分析,帮助读者更直观地理解JVM的工作原理。这本书的各个章节涵盖了从内存管理到垃圾回收,从类加载...

    深入理解Java内存模型

    深入理解Java内存模型对于进行高效的并发编程至关重要。 1. 并发编程:在Java中,多线程是实现并发的主要方式。每个线程都有自己的程序计数器、虚拟机栈、本地方法栈,而所有线程共享堆内存和方法区。并发编程的...

    深入理解java类加载机制

    总之,深入理解Java类加载机制对于Java程序员来说非常重要,它有助于提升代码质量,优化程序性能,解决运行时问题,并为高级技术如动态代理、插件化开发等提供基础。通过学习和实践,开发者可以更好地利用Java的动态...

    java泛型深入.pdf

    总之,深入理解Java泛型能够帮助开发者编写更安全、更健壮的代码。通过掌握泛型的原理和细节,开发者可以有效利用泛型来优化代码设计,提升程序的类型安全,同时在维持程序性能的同时简化代码。

Global site tag (gtag.js) - Google Analytics