Java深拷貝與淺拷貝

import com.alibaba.fastjson.JSON;

import lombok.Getter;

import lombok.Setter;

import lombok.Data;

import lombok.extern.slf4j.Slf4j;

import java.io.Serializable;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

@Setter

@Getter

@Slf4j

public class Studentextends BaseDtoimplements Serializable, Cloneable{

? ? private Integerid;

? ? private Stringname;

? ? private Integerage;

? ? private Citycity;

? ? private List<Integer> list =new ArrayList<>();

? ? public Objectclone() {

? ? ? ? //淺拷貝

? ? ? ? try {

? ? ? ? ? ? // 直接調(diào)用父類的clone()方法

? ? ? ? ? ? return super.clone();

? ? ? ? } catch (CloneNotSupportedException e) {

? ? ? ? ? ? return null;

? ? ? ? }

}


? ? public static void main(String[] args) throws CloneNotSupportedException{

? ? ? ? Student s1 =new Student();

? ? ? ? s1.setAge(10);

? ? ? ? s1.setId(1);

? ? ? ? s1.setName("1111111111111111");

? ? ? ? s1.getList().add(1);

? ? ? ? City city =new City();

? ? ? ? city.setCityCode(55555);

? ? ? ? city.setName("Unkown");

? ? ? ? s1.setCity(city);

? ? ? ? log.info("s1 is:{}", JSON.toJSONString(s1));

? ? ? ? String content = JSON.toJSONString(s1);

? ? ? ? Student s11 = JSON.parseObject(content, Student.class);

? ? ? ? s11.setId(11);

? ? ? ? s11.setAge(11);

? ? ? ? s11.setName("000000000000000");

? ? ? ? s11.getList().add(11);

? ? ? ? log.info("s11 is:{}", JSON.toJSONString(s11));

? ? ? ? log.info("s1 is:{}", JSON.toJSONString(s1));

? ? ? ? content = JSON.toJSONString(s1);

? ? ? ? Student s2 =(Student) s1.clone();

? ? ? ? s2.setId(2);

? ? ? ? s2.setAge(22);

? ? ? ? s2.setName("22222222222222");

? ? ? ? s2.getList().add(2);

? ? ? ? s2.getCity().setName("Beijing");

? ? ? ? log.info("s2 is:{}", JSON.toJSONString(s2));

? ? ? ? log.info("s1 is:{}", JSON.toJSONString(s1));

? ? ? ? content = JSON.toJSONString(s1);

? ? ? ? Student s3 = JSON.parseObject(content, Student.class);

? ? ? ? s3.setId(3);

? ? ? ? s3.setAge(33);

? ? ? ? s3.setName("333333333333");

? ? ? ? s3.getList().add(3);

? ? ? ? log.info("s3 is:{}", JSON.toJSONString(s3));

? ? ? ? Student s4 =(Student) s1.clone();

? ? ? ? s4.setId(4);

? ? ? ? s4.setAge(44);

? ? ? ? s4.setName("44444444444444");

? ? ? ? s4.getList().add(4);

? ? ? ? log.info("s4 is:{}", JSON.toJSONString(s4));

? ? ? ? log.info("s2 is:{}", JSON.toJSONString(s2));

? ? ? ? log.info("s1 is:{}", JSON.toJSONString(s1));

? ? }

@Data

public class City{

? ? private IntegercityCode;

? ? private Stringname;

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 淺拷貝是指拷貝對象時(shí)僅僅拷貝對象本身(包括對象中的基本變量),而不拷貝對象包含的引用指向的對象。深拷貝不僅拷貝對象...
    Sandy_678f閱讀 686評論 0 0
  • 廢話不多說,自己進(jìn)入今天的主題 1、面向?qū)ο蟮奶卣饔心男┓矫妫?答:面向?qū)ο蟮奶卣髦饕幸韵聨讉€(gè)方面: - 抽象:...
    傳奇內(nèi)服號閱讀 2,530評論 1 31
  • 大約是在我讀小學(xué)一二年級的時(shí)候,家里還沒有冰箱,炎熱的夏天,老蔡買回一只西瓜,就放在裝滿水廚房的洗碗槽里泡著,等吃...
    菜小齊閱讀 278評論 0 1
  • 有時(shí)候喜歡不是一種錯(cuò),只是我們口是心非,錯(cuò)過了太多,在最美的年紀(jì),就該奮不顧身的追尋,哪怕失敗,也有回憶記錄...
    幽柯閱讀 454評論 0 2
  • 燈光輝煌的城市,從來不缺徹夜不眠的人。 據(jù)中國睡眠協(xié)會(huì)統(tǒng)計(jì),我國有3億的成年人存在睡眠障礙。 失眠,或許是因?yàn)樾睦?..
    物道閱讀 1,419評論 3 21

友情鏈接更多精彩內(nèi)容