偷懶了好幾天今天來按著原來的進度繼續寫囉
先前我們提到 String pool 字串池、new 出物件、比較物件
那這次和大家介紹一下
淺複製 和 深複製
https://www.baeldung.com/cs/deep-vs-shallow-copy
直接上程式碼
Car car = new Car();
// test shallow copy 淺層
Car shallowCopy = car;
Assertions.assertEquals(car, shallowCopy);
// 物件只給另一個物件 兩個物件間彼此使用的記憶位置相同 因此完全相同
// 也可以想成都=給你 所以完全相同 中間沒有做任何事情
ObjectMapper objectMapper = new ObjectMapper();
// deep copy 深層
Country deepCopy = objectMapper.readValue(gson.toJson(car), Car.class);
Assertions.assertNotEquals(deepCopy, car);
/// gson.toJson(car) -> 把物件給序列化變成純JSON格式的String 然後用objectMapper/gson給deepCopy 去接,可以把它想做 你把一個裝滿東西的盒子 現在另一個一模一樣的盒子 把原本裡面的東西(值)放到盒子裡
補充:
這不是一個給新手的一個教學過程,也寫的不是很完整
希望大家多多包涵囉~
主要是給自己的一個紀錄,也分享給有需要的夥伴
這是一個心血來潮,產生的文章
若有喜歡或交流的部分都歡迎在下方留言,多多關照。