值传递和引用传递分别指什么呢?
下文笔者将讲述“值传递和引用传递”的简介说明,如下所示
值传递
对象作为值传递(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
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


