在Java中无论是基本数据类型还是引用数据类型传递的都是值,不同的是基本数据类型传递的直接就是值,传递后各不相关。而引用数据类型传递的是地址值,原变量和被赋值变量同时指向堆当中的对象,其中的任何变量改变了所指对象的内容,其他变量得知也会跟着改变。
public class Test01{
public static void main(String[ ] args ){
int i1 = 10; //此时将10赋给给了 i
int i2 = i1; //这时 i2 也是 10.
i2 = 100; //i2的值变成了100 但,i1的值还是10
}
}
public class Test01{
int i;
public void show(){
System.out.println(i);
}
}
class Test02{
public static void main(String[] args) {
Test01 t = new Test01();
t.i = 10;
t.show(); //10
Test01 t2 = t;
t2.show(); //10
t2.i = 20;
t.show(); // 20
t2 = new Test01(); // t2已值向别处
t2.i = 30; //再尝试给 i 赋值
t.show(); //20 t的 i 值没有改变,说明t2保存的地址值已发生改变
}
}