生手求教,关于java容器的元素添加原理

新手求教,关于java容器的元素添加原理
比如向vector<Integer> v中添加一个Integer元素,在容器外面修改不影响容器内部元素的值

但如果是一个自己定义的类A比如。在外面修改会影响容器内部元素的值。这是为什么呢

新手,见谅。
------解决方案--------------------
你从集合中拿出的Integer已经被转化成字面量了,你把它赋值给某个变量,完了修改该变量是一直在修改字面量。所以并不会影响集合内的元素。
但是你存的对象,其实只是一个引用,从集合中拿出来该对象的引用,修改它的属性的时候因为它和集合中的引用指向的是同一个堆地址,所以就相当于修改了集合里面对象的属性。
------解决方案--------------------
楼上正解。

搞清楚引用类型和基本类型就很清楚了
------解决方案--------------------
又是值和引用的问题。生手求教,关于java容器的元素添加原理
------解决方案--------------------
保存对象实际上是保存了对象在内存中的地址,地址相同,指向同一个对象,当然修改同一个对象了生手求教,关于java容器的元素添加原理
------解决方案--------------------
修改一个对象的值和修改一个对象的成员是两回事。比如:
public class A {public int i = 0;}

当你这样做:
A a = new A(); a.i = 10;

的时候,你没有改变 a 的值,你只是改变了 a 的成员 i 的值。
------解决方案--------------------
基本类型和值引用的问题