日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中创建对象的四种方式

發布時間:2025/3/19 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中创建对象的四种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

Java中創建對象的四種方式?

? (1) 用new語句創建對象,這是最常見的創建對象的方法。?
? (2) 運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法。?
? (3) 調用對象的clone()方法。?
? (4) 運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。?


一.用new語句創建對象 ?
Java代碼? ?
  • User?user?=?new?User()??


  • 二.運用反射手段 ?
    ? (1)調用java.lang.Class.newInstance() Java代碼? ?
  • Class.forName(classname).newInstance()??
  • Wife?wife?=?(Wife)?Class.forName("com.java.clone.Wife").newInstance();??

  • ? (2)調用java.lang.reflect.Constructor類的newInstance()?
    Java代碼? ?
  • Constructor<Wife>?constructor?=?Wife.class.getDeclaredConstructor(int.class,String.class);??
  • Wife?wife?=?(Wife)?constructor.newInstance(1,"nihao");??

  • 三.調用對象的clone()方法 ?
    詳情參考: http://ncs123.iteye.com/blog/1775631 ?
    ? Java代碼? ?
  • Wife?wife?=?new?Wife(1,"wang");??
  • Wife?wife2?=?null;??
  • wife2?=?(Wife)?wife.clone();//運用clone()方法產生新對象??


  • 四.運用反序列化手段 ?
    被序列化的對象必須implements Serializable?
    Java代碼? ?
  • public?class?BeanUtil?{??
  • ??
  • ????@SuppressWarnings("unchecked")??
  • ????public?static?<T>?T?cloneTo(T?src)?throws?RuntimeException?{??
  • ????????ByteArrayOutputStream?memoryBuffer?=?new?ByteArrayOutputStream();??
  • ????????ObjectOutputStream?out?=?null;??
  • ????????ObjectInputStream?in?=?null;??
  • ????????T?dist?=?null;??
  • ??
  • ????????try?{??
  • ????????????out?=?new?ObjectOutputStream(memoryBuffer);??
  • ????????????out.writeObject(src);??
  • ????????????out.flush();??
  • ????????????in?=?new?ObjectInputStream(new?ByteArrayInputStream(??
  • ????????????????????memoryBuffer.toByteArray()));??
  • ????????????dist?=?(T)?in.readObject();??
  • ??
  • ????????}?catch?(Exception?e)?{??
  • ????????????throw?new?RuntimeException(e);??
  • ????????}?finally?{??
  • ????????????if?(out?!=?null)??
  • ????????????????try?{??
  • ????????????????????out.close();??
  • ????????????????????out?=?null;??
  • ????????????????}?catch?(IOException?e)?{??
  • ????????????????????throw?new?RuntimeException(e);??
  • ????????????????}??
  • ????????????if?(in?!=?null)??
  • ????????????????try?{??
  • ????????????????????in.close();??
  • ????????????????????in?=?null;??
  • ????????????????}?catch?(IOException?e)?{??
  • ????????????????????throw?new?RuntimeException(e);??
  • ????????????????}??
  • ????????}??
  • ??
  • ????????return?dist;??
  • ????}??
  • ??
  • ????public?static?void?main(String[]?args){??
  • ????????Husband?husband?=?new?Husband(1);??
  • ????????Wife?wife?=?new?Wife(1,"jin");??
  • ????????husband.setWife(wife);??
  • ????????Husband?husband2?=?cloneTo(husband);//運用反序列生成了一個對象??
  • ????}??
  • } ?
  • 轉載于:https://my.oschina.net/sky319/blog/112634

    總結

    以上是生活随笔為你收集整理的Java中创建对象的四种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。