`

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 中的八种基本类型,包括 byte、short、...

    Java中对象与引用

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

    Java的引用和函数参数传递

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

    java 常见的四种引用

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

    Java中的强软弱虚引用

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

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

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

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

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

    java弱引用

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

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

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

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

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

    Java是传值还是传址引用

    在Java中,引用是一种特殊的数据类型,用于存储对象在内存中的地址。当我们创建一个新的对象时,Java会在内存中分配一定的空间来存储该对象的数据,并返回一个指向该对象的引用。通过这个引用,我们可以访问和操作该...

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

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

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

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

    java对象引用易混解析

    理解Java中的对象与引用之间的区别至关重要,因为这涉及到如何管理和操作对象。 #### 二、对象与引用的创建过程 在Java中创建一个对象并对其进行引用通常涉及以下步骤: 1. **对象创建**:在堆内存中分配内存空间...

    java值传递与引用传递

    在Java中,除了基本数据类型外的所有类型(包括自定义类和接口实现)都是按引用传递的。然而,这里有一个关键点需要注意,Java并不支持真正的引用传递,而是使用"传对象的引用副本"来模拟引用传递的效果。 ```java ...

    java引用的demo

    在Java编程语言中,引用是连接对象和内存空间的关键概念。本示例“java引用的demo”将深入探讨四种不同类型的引用:强引用、软引用、弱引用和虚引用。这些引用类型对于理解和优化内存管理至关重要,特别是在Android...

    Java中对象与引用对象的关系

    Java中对象与引用对象的关系 在 Java 中,对象和引用对象的关系是一个非常重要的概念。从宏观的角度来看,对象是类的实例。例如,我们可以定义一个名为 Someone 的类,代表一些人(通过指定年龄、性别、性格等基本...

    java8中文文档API

    除了Lambda,Java 8还提供了方法引用和构造器引用,它们进一步简化了函数式编程。方法引用允许直接引用已有方法,如`List<String> list = Arrays.asList("a", "b", "c"); list.sort(Comparator.naturalOrder());`,...

    java 中文字转为英文

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

Global site tag (gtag.js) - Google Analytics