淺拷貝 深拷貝 和 引用拷貝(指針拷貝)

 

拷貝分爲兩種方式,一種是引用拷貝(指針拷貝),一種是對象拷貝

引用拷貝:和對象拷貝的不同之處在於,引用拷貝只會生成一個新的對象引用地址,但兩個地址其最終指向的還是同一個對象

對象拷貝:這種方式會重新生成一個新的對象,生成的新對象與原來的對象沒有任何關聯

而對象拷貝又分爲 淺拷貝深拷貝

下面分別說一下 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:

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章