值传递和引用传递分别指什么呢?

戚薇 Java面经 发布时间:2023-06-18 15:24:27 阅读数:1206 1
下文笔者将讲述“值传递和引用传递”的简介说明,如下所示

值传递

对象作为值传递(pass by value):
   会传递对象一个副本
   当修改对象副本
     也不会影响源对象中的值 

引用传递

对象作为引用传递(pass by reference):
      传递的并不是实际的对象,而是对象的引用
      因此,外部对引用对象所做的改变会反映到所有的对象上

Java是值传递还是引用传递

当传的是基本类型时,传的是值的拷贝
     对拷贝变量的修改不影响原变量;
	 
当传的是引用类型时,传的是引用地址的拷贝,
     但是拷贝的地址和真实地址指向的都是同一个真实数据
     因此可以修改原变量中的值

----------------特定情况说明--------------------------
当传String类型时,虽然拷贝的也是引用地址,指向的是同一个数据
但是String的值不能被修改,因此无法修改原变量中的值

Java中值传递和引用传递的示例分享

package com.java265.other;

public class TestAnimal {


	/**
	 * Java265.com 值传递和引用传递的示例分享
	 */
	public static void main(String[] args) {

		int i = 9;
		// 值传递的示例
		change(i);
		System.out.println("i:" + i);

		System.out.println("====================");
		Test20230618 test222 = new Test20230618();
		test222.setI(90);
		// 引用传递
		change2(test222);
		System.out.println("test.i:" + test222.i);

	}

	public static void change(int i) {
		i = i + 1;
	}

	public static void change2(Test20230618 t) {
		t.i = t.i + 1;
	}


}


class Test20230618 {
	int i;

	public void setI(int i) {
		this.i = i;
	}

	public int getI() {
		return this.i;
	}

	public Test20230618() {
	}

}

=======运行以上代码,将输出以下信息==============
i:9
====================
test.i:91
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202306/16870731066830.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者