`
yjyj001
  • 浏览: 137189 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Java中的引用的理解

阅读更多
转自:http://www-128.ibm.com/developerworks/cn/java/l-jpointer/index.html Java对对象和基本的数据类型的处理是不一样的。和C语言一样,当把Java的基本数据类型(如int,char,double等)作为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局部变量是输入参数的一个拷贝,所有的函数体内部的操作都是针对这个拷贝的操作,函数执行结束后,这个局部变量也就完成了它的使命,它影响不到作为输入参数的变量。这种方式的参数传递被称为"值传递"。而在Java中用对象的作为入口参数的传递则缺省为"引用传递",也就是说仅仅传递了对象的一个"引用",这个"引用"的概念同C语言中的指针引用是一样的。当函数体内部对输入变量改变时,实质上就是在对这个对象的直接操作。 此外,在Java中,除了在函数传值的时候是"引用传递",在任何用"="向对象变量赋值的时候都是"引用传递"。 理解: C中传递参数有:值传递,或指针传递 C++中有:值传递,显式的指针传递,引用传递 Java中:对对象一般是引用传递 关于java中的clone: 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在Java语言中,用简单的赋值语句是不能满足这种需求的。要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单,也是最高效的手段。 Java的所有类都默认继承java.lang.Object类,在java.lang.Object类中有一个方法clone()。JDK API的说明文档解释这个方法将返回Object对象的一个拷贝。要说明的有两点:一是拷贝对象返回的是一个新对象,而不是一个引用。二是拷贝对象与用new操作符返回的新对象的区别就是这个拷贝已经包含了一些原来对象的信息,而不是对象的初始信息。
分享到:
评论

相关推荐

    Java对象及其引用的理解

    在Java编程语言中,对象和引用的理解是至关重要的,它们构成了Java程序的基础。本文将深入探讨Java中的对象、引用以及它们之间的关系,并结合值传递的概念进行解析。 首先,我们需要理解什么是Java对象。在Java中,...

    Java中的基本类型和引用类型变量的区别

    Java 中的基本类型和引用类型变量的区别 Java 中的基本类型和引用类型变量是两个不同的概念,它们在内存分配、变量赋值和函数传递等方面有着本质的区别。 基本类型是 Java 中的八种基本类型,包括 byte、short、...

    Java中对象与引用

    在Java编程中,深入理解对象与引用的概念对于掌握面向对象编程至关重要。本文将从以下几个方面详细解析对象与引用的基本概念及其相互间的关系。 #### 一、对象与引用的基础概念 **对象**: 在Java中,对象是类的一...

    java中的引用问题

    Java中的引用问题主要涉及到对象作为参数传递时的行为。在Java中,有两类数据类型:基本类型(如int、char)和引用类型(如类实例、数组)。对于基本类型,Java采用值传递的方式,而对于引用类型,则是传递引用的...

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

    Java中的四种引用类型是Java内存管理的重要组成部分,它们分别是强引用(StrongReference)、软引用(SoftReference)、弱引用(WeakReference)和虚引用(PhantomReference)。每种引用类型具有不同的特点和用途,...

    Java的引用和函数参数传递

    在Java中,对象的引用扮演着类似于其他编程语言(如C/C++)中指针的角色,但是Java的引用比传统的指针更加安全且易于管理。这是因为Java的设计者们刻意避免了一些容易引发错误的操作,比如不允许对引用进行算术操作...

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

    在Java中,对象的引用方式对于内存管理和对象生命周期的控制至关重要。从JDK 1.2版本开始,Java引入了四种不同级别的引用:强引用(Strong Reference)、软...希望本文能够为您提供在Java引用类型的使用上清晰的指导

    java 常见的四种引用

    ### Java 常见的四种引用详解 #### 引言 在Java中,为了更好地管理对象的生命周期,从JDK 1.2开始引入了四种不同级别的引用类型:强引用、软引用、...正确理解和使用这些引用类型对于优化Java应用程序的性能至关重要。

    java中传值与传引用

    在Java编程语言中,函数调用时的参数传递方式有两种:传值(Passing by Value)和传引用(Passing by Reference)。虽然Java官方文档中并未明确指出有传引用这一概念,但在实际操作中,Java的行为类似于传引用,尤其...

    Java 方法引用

    在Java编程语言中,方法引用是一种特殊的语法构造,它允许我们直接引用已有方法,而无需在lambda表达式中重新定义。方法引用的概念是随着Java 8的发布引入的,它是函数式编程特性的一部分,旨在简化代码并提高可读性...

    Java中的强软弱虚引用

    为了更好地理解和控制对象的生命周期,Java提供了四种不同类型的引用:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)以及虚引用(Phantom Reference)。每种引用都有其特定的...

    java中引用和c++中引用的区别.docx

    Java中的引用和C++中的引用在概念和使用上有显著的不同,这是由于两者设计哲学和语言特性的差异。首先,我们要明确一点,Java的引用更接近于C++的指针,而C++的引用则是一种完全不同的机制。 在Java中,引用可以...

    Java中弱引用软引用虚引用及强引用的区别Java开发Ja

    在Java编程语言中,引用类型是理解内存管理的关键概念之一。强引用、弱引用、软引用和虚引用是四种不同的引用强度,它们在垃圾回收机制中扮演着不同的角色。了解这些引用类型对于优化内存使用、防止内存泄漏以及合理...

    java中的指针,引用及对象的clone

    ### Java中的指针概念与引用解析 #### 一、引言 Java作为一种广泛使用的面向对象编程语言,在设计之初就摒弃了C/C++中的指针概念。然而,尽管Java没有传统意义上的指针,但仍然存在一种类似的概念——引用。本文将...

    java中对象和对象引用的区别!

    ### Java中对象与对象引用的区别 #### 基础概念 在Java编程语言中,对象与对象引用是非常基础且重要的概念。理解它们之间的区别对于掌握Java面向对象编程至关重要。 #### 对象与引用定义 - **对象**:在Java中,...

    Java:按值传递还是按引用传递详细解说

    本文将深入探讨Java中的参数传递机制,并通过具体的代码示例和内存分配图解来帮助读者理解按值传递和按引用传递的概念。 #### 二、按值传递的概念与特点 按值传递是指在函数或方法调用过程中,传递给函数或方法的...

    10分钟带你理解Java中的弱引用

    Java中的弱引用是一种特殊的引用类型,它在内存管理中扮演着重要的角色,特别是在避免内存泄漏和优化资源使用方面。本文将从三个方面详细解释弱引用...理解和合理使用弱引用对于编写高效、健壮的Java应用程序至关重要。

    java中对象创建、初始化、引用

    ### Java中对象创建、初始化与引用详解 #### 一、Java对象、引用及创建过程 在Java中,对象是程序的基本单位,它包含了属性(成员变量)和行为(方法)。对象是由类创建出来的实例,而类则是一组具有相同属性和...

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

    在Java编程语言中,除了基本数据类型如int、double等之外,还提供了引用数据类型,它们是构建复杂数据结构和对象的...引用数据类型的深入理解是Java程序员必须掌握的基础知识,有助于编写高质量、可维护和高效的代码。

Global site tag (gtag.js) - Google Analytics