7. 物件的淺複製 深複製


偷懶了好幾天今天來按著原來的進度繼續寫囉

先前我們提到 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 去接,可以把它想做 你把一個裝滿東西的盒子 現在另一個一模一樣的盒子 把原本裡面的東西(值)放到盒子裡

補充:

這不是一個給新手的一個教學過程,也寫的不是很完整
希望大家多多包涵囉~

主要是給自己的一個紀錄,也分享給有需要的夥伴

這是一個心血來潮,產生的文章
若有喜歡或交流的部分都歡迎在下方留言,多多關照。

#java 17 #spring boot







你可能感興趣的文章

[JS101] 判斷式

[JS101] 判斷式

Vatic 安裝教學

Vatic 安裝教學

資料傳輸物件Data Transfer Object(DTO) 簡介

資料傳輸物件Data Transfer Object(DTO) 簡介






留言討論