对一个对象进行操作时,我们真正操作的是它的句柄。所以倘若“从一个对象到另一个对象”赋值,实际就是将句柄从一个地方复制到另一个地方。这意味着假若为对象使用“C=D”,那么C 和D 最终都会指向最初只有D 才指向的那个对象。
例子:
package cn.longxingtx.number;
public class Test {
private int i = 0;
public void setI(int i) {
this.i = i;
}
public int getI() {
return i;
}
public static void main(String[] args) {
Test t1 = new Test();
t1.setI(1);
Test t2 = new Test();
t2.setI(2);
System.out.println("t1.i:" + t1.i + " t2.i:" + t2.i);
t1 = t2;
System.out.println("t1.i:" + t1.i + " t2.i:" + t2.i);
t1.i = 5;
System.out.println("t1.i:" + t1.i + " t2.i:" + t2.i);
t2.i = 8;
System.out.println("t1.i:" + t1.i + " t2.i:" + t2.i);
}
}
输出:
t1.i:1 t2.i:2
t1.i:2 t2.i:2
t1.i:5 t2.i:5
t1.i:8 t2.i:8