java創建對象的幾種方式


前言,今日面試被問到創建對象是否一定要通過構造器,當時回答錯誤,查詢分析后記錄。

創建對象的幾種方式:

第一種,也是最常用、一直接觸到的方法:通過new 創建對象。這種方法需要用到構造器

    Demo demo1=new Demo();
    Demo demo2=new Demo(1,"有參構造器");

 

 

第二種,比較常用的的方法:通過反射 newInstance()創建對象。這種方法用到構造器

  Demo demo2=(Demo) Class.forName("Demo").newInstance();

第三種,通過object類的clone方法。需要實現Cloneable接口,重寫object類的clone方法。無論何時我們調用一個對象的clone方法,jvm就會創建一個新的對象,將前面對象的內容全部拷貝進去。用clone方法創建對象並不會調用任何構造函數。(原型模式,還沒了解)

  Demo demo4=(Demo) demo2.clone();

第四種,反序列化。java 中常常進行 JSON 數據跟 Java 對象之間的轉換,即序列化和反序列化。
當我們序列化和反序列化一個對象,JVM會給我們創建一個單獨的對象,在反序列化時,JVM創建對象並不會調用任何構造函數。為了反序列化一個對象,我們需要讓我們的類實現Serializable接口,雖然該接口沒有任何方法。不會調用任何構造函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM