拷贝
拷贝即对已有的数据创建一个副本,在 Java 中,拷贝可分为引用拷贝、浅拷贝、深拷贝。
引用拷贝
在 Java 中,实例化后的对象存储在堆区,而局部变量存放在局部变量表(栈)中,如:
public void yinYongCopy() {
User user = new User("xiaoming", 12);
}
user 变量只是存放堆区 User 实例的引用(地址)。那么把 user 赋值另一个变量 copy,称为引用拷贝(相当于地址赋值)。
public void yinYongCopy() {
User user = new User("xiaoming", 12);
User copy = user;
}
user 和 copy 两个变量存放了 User 实例的指向,他们指向了同一份堆内存空间。
浅拷贝
在 java 中,默认的拷贝指的是类重写 Object 类中的 clone 方法,调用该方法进行拷贝。Object 类中的 clone 方法使用 Native 修饰,由本地