拷贝分为两种方式,一种是引用拷贝(指针拷贝),一种是对象拷贝
引用拷贝:和对象拷贝的不同之处在于,引用拷贝只会生成一个新的对象引用地址,但两个地址其最终指向的还是同一个对象
对象拷贝:这种方式会重新生成一个新的对象,生成的新对象与原来的对象没有任何关联
而对象拷贝又分为 浅拷贝 和 深拷贝
下面分别说一下 Java 和 Go 的 拷贝:
引用拷贝(指针拷贝):
java:
User user1 = new User();
User user2 = user1;
go:
golang 里的 引用(指针)拷贝 是 通过 指针赋值
var c3 *User = &User{age: 13}
var c4 *User = c3
对象拷贝:
1.浅拷贝:
java:
User user1 = new User();
User user2 = (User)user1.clone();
go:
var c3 User = User{age: 13}
var c4 User = c3
2.深拷贝:
java:
go: