假设我们有一个类
我们下面用两张图来表示深拷贝和浅拷贝的区别。
- 浅拷贝
- 深拷贝
注意事项:#
假设我们有一个类,然后我们进行浅拷贝
这时候输出结果为
也就是说,这里并没有像之前图示一样进行浅拷贝,因为对象 x 中的值与对象 y 中的值不一样,这是因为 String 和 Integer 等包装类都是不可变的对象。当需要修改不可变对象的值时,需要在内存中生成一个新的对象来存放新的值,然后将原来的引用指向新的地址。
假设我们有一个类
我们下面用两张图来表示深拷贝和浅拷贝的区别。
假设我们有一个类,然后我们进行浅拷贝
这时候输出结果为
也就是说,这里并没有像之前图示一样进行浅拷贝,因为对象 x 中的值与对象 y 中的值不一样,这是因为 String 和 Integer 等包装类都是不可变的对象。当需要修改不可变对象的值时,需要在内存中生成一个新的对象来存放新的值,然后将原来的引用指向新的地址。