直接上代码:
public class Visaul{
public static void main(String[] args){
Student t1 = new Student();
Student t2 = new Student();
t1.age = 45;
t2.age = 14;
System.out.println(t1.age);
System.out.println(t2.age);
t2=t1;
System.out.println(t1.age);//
System.out.println(t2.age);//
t1.age=28;
System.out.println(t1.age);
System.out.println(t2.age);
}
}
class Student{
public int age;
}
45
14
45
45
28
28
其实答案都知道,只是,今天看到 java编程思想 的时候强调了这个程序,java调用对象实际上是对象的引用
由于t1和t2都包含了相同的句柄,指向相同的对象,指向容纳了t2的对象。赋值过程中,t1句柄实际已经丢失,垃圾回收器清除
java中叫“别名”
可以是变为t2.age = t1.age;
可以保留两个独立对象。
但是结果不变,只是处理对象的过程改变了。
对着一个程序记忆比较深刻,再次强化记忆一下。