源码如下:
vo1被赋值null后 vo2不受影响, 请帮忙解释下原理 .
非常感谢.
Product vo1 = new Product(1, "iphone 5s", 5000) ;
Product vo2 = vo1 ;
System.out.println("vo1: " + vo1);
System.out.println("vo2: " + vo2);
vo1.setId(222); // 因为是引用类型 所以 vo1与vo2都会被赋值
System.out.println("vo1: " + vo1);
System.out.println("vo2: " + vo2);
vo1 = null ; // vo1是null 但 vo2还是有值 . 原理 ??
System.out.println("vo1: " + vo1);
System.out.println("vo2: " + vo2);
打印结果:
vo1: Product [id=1, name=iphone 5s, price=5000]
vo2: Product [id=1, name=iphone 5s, price=5000]
vo1: Product [id=222, name=iphone 5s, price=5000]
vo2: Product [id=222, name=iphone 5s, price=5000]
vo1: null
vo2: Product [id=222, name=iphone 5s, price=5000]