public class Var_ { int a; public static void main(String[] args) { Var_ var_1 = new Var_(); var_1.a = 111; Var_ var_2 = new Var_(); var_2.a = 222; System.out.println(var_1.a); System.out.println(var_2.a); /*********************************************/ var_1 = var_2; System.out.println(var_1.a); System.out.println(var_2.a); /***********************************************/ var_1.a = 666; System.out.println(var_1.a); System.out.println(var_2.a); } }
思考每个打印语句将会输出的值
111 222 222 222 666 666
var_1 = var_2;
//将var_1对象实例的引用指向了var_2 , 所以var_1.a 将会输出 var_2.a的值
var_1.a = 666;
再为var_1.a赋值,其实无论对var_1.a 或 var_2.a赋值 , 两个的值终会统一 , 因为var_1与var_2包含的是相同的引用,他们指向相同的对象.