`

java中的引用续集

 
阅读更多

分函数:

public class Atest {
	private int t=0;
	public void setValue(int t)
	{
		this.t=t;
	}
	public void talk()
	{
		System.out.println(t);
	}

}

 主函数:

public class Test {
	

	public void test(Atest at) {
		at = new Atest();
		at.setValue(5);
		at.talk();
	}

	public static void main(String[] args) throws Exception {
		// new MyThread().start();
		Atest at = new Atest();
		Test test = new Test();
		at.talk();
		test.test(at);
		at.talk();
	}
}

 运行结果:

0

5

0

 

问题:

很多开始学习java的童鞋可能会认为输出的结果为:

0

0

0

这其中牵涉到一个问题:

public void test(Atest at) {

		at = new Atest();
		at.setValue(5);
		at.talk();
	}

中我们改变了传入参数引用的指向,但是跳出函数后该引用的指向没有变化

这里需要说明的是,我们传进来的引用并不是完全的引用,而是自己够早了一个引用,将传入的引用赋值给自己构造的引用,然后再函数里利用这个引用进行操作。这样做实际上有两个指向传入对象的引用,一个方法内一个方法外,而我们改变的只是方法内的引用,对于方法外的引用没有影响!

分享到:
评论

相关推荐

    Java中对象与引用

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

    java中的引用问题

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

    Java的引用和函数参数传递

    通过上述分析,我们可以清楚地了解到Java中引用和函数参数传递的基本概念以及它们的具体应用。了解这些概念对于正确使用Java进行编程非常重要,尤其是在处理复杂的数据结构和对象交互时。希望本文能帮助读者更好地...

    java 常见的四种引用

    在Java中,为了更好地管理对象的生命周期,从JDK 1.2开始引入了四种不同级别的引用类型:强引用、软引用、弱引用和虚引用。每种引用类型都有其特定的应用场景,通过灵活运用这些引用类型,开发者可以在内存管理和...

    Java中的强软弱虚引用

    ### Java中的强软弱虚引用详解 #### 一、引言 在Java中,对象的生命周期与内存管理密切相关。为了更好地理解和控制对象的生命周期,Java提供了四种不同类型的引用:强引用(Strong Reference)、软引用(Soft ...

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

    在Java中,对象的引用方式对于内存管理和对象生命周期的控制至关重要。从JDK 1.2版本开始,Java引入了四种不同级别的引用:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚...

    Java的四种引用

    从JDK 1.2版本开始,Java引入了一种更为精细的引用类型管理机制,通过四种不同的引用类型:强引用、软引用、弱引用和虚引用,让开发者能够更加灵活地控制对象的生命周期。这种机制不仅提升了Java应用程序对内存使用...

    java弱引用

    在 Java 中,引用可以分为四类:强引用、软引用、弱引用和虚引用(也称为精灵引用)。弱引用是其中的一种,它们允许垃圾回收器在某些情况下回收对象,而不是像强引用那样坚持对象的存在。 弱引用的工作原理是,当...

    JAVA_API1.6文档(中文)

    java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度...

    62.java引用类型的参数传递.zip

    62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递....

    java函数引用图解

    java函数引用图解

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

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

    Java基础:对象及引用祥解

    #### 一、Java中的对象与引用概念 在Java编程语言中,理解和掌握对象和引用的基本概念是非常重要的。这两者虽然紧密相关,但也有本质的区别。 **对象**:在Java中,对象是类的一个实例。当我们创建一个类的新实例...

    java 中文字转为英文

    java 中文字转为英文java 中文字转为英文java 中文字转为英文

    Java1.8API中文手册

    Java 1.8 API中文手册是Java开发者的重要参考资料,它详细介绍了Java 1.8版本中的各种类库、接口、方法和异常等核心组件。这个手册以中文的形式提供了丰富的编程指南,帮助开发者理解和使用Java 1.8的特性。下面我们...

    Java引用类型1

    Java提供了四种不同级别的引用类型:强引用、软引用、弱引用和虚引用(幻象引用),每种引用类型在内存管理中有不同的作用。 1. **强引用(Strong Reference)** - 强引用是最常见的引用类型,即通常的变量赋值。...

    Java 中文入门学习手册合集[chm版]

    第一章 Java语言的产生及其特点 第二章 Java程序开发与运行环境 第三章 Java程序设计基础 第四章 Java应用程序的基本框架 第五章 Java的类 第六章 Java图形用户接口 第七章 多线程 第八章 Java的"异常" 第九...

    Java API文档 中文网页版

    在Java中,API主要由Sun Microsystems(现为Oracle公司)维护,是Java平台的核心组成部分。它包括了Java标准库中的各种类库,如集合框架、输入/输出流、网络编程、多线程、图形用户界面(GUI)等。 Java API文档...

    Java传值还是引用

    根据标题和描述,我们将深入探讨Java中传值与引用的区别,以及它们在实际编程中的应用。 首先,Java是一种“总是按值传递”的语言。这意味着无论是基本类型还是引用类型,当作为参数传递时,都会有一个副本被创建并...

    疯狂java讲义06 电子版 pdf

    Java中的引用类型是指针的一种封装形式,引用变量存储的是对象的内存地址,而不是对象的实际数据。Java对象的实际数据存储在堆内存中,而引用变量则存放在栈内存里。栈内存用于存放局部变量等,堆内存存放实际的对象...

Global site tag (gtag.js) - Google Analytics