1.深拷贝与浅拷贝
通俗地讲,如果B复制了A,当A修改时,如果B也随之变换就是浅拷贝,要是B不变就是深拷贝
2.数组的拷贝
(1)for循环
- 浅拷贝
- 不产生新对象
- 拷贝速度最慢,指数:4
(2)clone()
- 浅拷贝
- 产生新的对象
- 拷贝速度指数:2
(3)System.arraycopy()
- 浅拷贝
- 不产生新的对象
- 本地方法(native修饰,c/c++代码实现,调用执行速度非常快),拷贝指数:1
(4)Arrays.copyOf()
- 浅拷贝
- 返回一个数组
- 底层调用System.arraycopy()
- 拷贝指数:3
它们都是浅拷贝,但对于基本数据类型来说可以理解为是深拷贝,对于引用类型来说是浅拷贝,它们拷贝的是引用,和被拷贝的引用指向同一个对象。