国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達式|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java實例化的幾種方法總結(jié)

Java實例化的幾種方法總結(jié)

2020-09-17 15:10u014401141 JAVA教程

這篇文章主要介紹了Java實例化的幾種方法總結(jié)的相關(guān)資料,需要的朋友可以參考下

Java實例化的幾種方法總結(jié)

Java創(chuàng)建有四種方式:

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

1.用new語句創(chuàng)建對象

?
1
User user = new User();

2.運用反射機制

根據(jù)依賴倒轉(zhuǎn)原則,實際編碼過程中要針對接口編程而不是具體類編程。在面向接口編程的模式中,經(jīng)常用此方法來動態(tài)創(chuàng)建實例。如從XML配置文件中獲取具體子類的類名字符串subClassName,然后根據(jù)獲得的類名字符串進行實例化:

?
1
Class c = Class.forName(subClassName);

(1)java.lang.Class.newInstance()

?
1
User user = (User)c.newInstance();// 不帶參數(shù)

(2)java.lang.reflect.Constructor類的newInstance()

?
1
2
  Constructor con = c.getConstructor(String.class);
User user = (User) con.newInstance("name");<br>
?
1
2
3
4
5
6
7
public Object getNewObject(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
    //class.forName(類的全路徑)、實例對象.class(屬性)、實例對象getClass(),這三種方式都能得到class
    Class tClass=Class.forName(className);
    Object tObject=tClass.newInstance();
    return tObject;
     
  }

3.調(diào)用對象的clone()方法

clone指克隆

?
1
2
3
User user1 = new User(1,"dan");
  User user2 = null;
  user2 = (User) user1.clone();

4.運用反序列化手段

序列化:將對象狀態(tài)轉(zhuǎn)化為可保持或傳輸?shù)母袷降倪^程,被序列化的對象必須implments Serializable

反序列化:將流轉(zhuǎn)化成對象的過程

當兩個進程在進行遠程通信時,彼此可以發(fā)送各種類型的數(shù)據(jù)。無論是何種類型的數(shù)據(jù),都會以二進制序列的形式在網(wǎng)絡(luò)上傳送。發(fā)送方需要把這個Java對象轉(zhuǎn)換為字節(jié)序列,即java對象序列,才能在網(wǎng)絡(luò)上傳送,即序列化過程;接收方則需要把字節(jié)序列再恢復(fù)為java對象,即反序列化。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.io.ObjectOutputStream;  
import java.io.ObjectInputStream;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.util.Date;  
import java.lang.management.*;  
public class Test {  
  
  
  
  //序列化對象到文件  
  public static void serialize(String fileName){  
    try
    {  
      //創(chuàng)建一個對象輸出流,講對象輸出到文件  
      ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(fileName));  
  
      UserInfo user=new UserInfo("renyanwei","888888",20);  
      out.writeObject(user); //序列化一個會員對象  
  
      out.close();  
    }  
    catch (Exception x)  
    {  
      System.out.println(x.toString());  
    }  
       
  }  
  //從文件反序列化到對象  
  public static void deserialize(String fileName){  
    try
    {  
      //創(chuàng)建一個對象輸入流,從文件讀取對象  
      ObjectInputStream in=new ObjectInputStream(new FileInputStream(fileName));  
  
      //讀取UserInfo對象并調(diào)用它的toString()方法  
      UserInfo user=(UserInfo)(in.readObject());       
      System.out.println(user.toString());  
  
      in.close();  
    }  
    catch (Exception x)  
    {  
      System.out.println(x.toString());  
    }  
       
  }  
  
  public static void main(String[] args) {    
  
    serialize("D:\\test.txt");  
    System.out.println("序列化完畢");  
       
    deserialize("D:\\test.txt");  
    System.out.println("反序列化完畢");  
  }  
  

(1)和(2)都會明確的顯式的調(diào)用構(gòu)造函數(shù) ;(3)是在內(nèi)存上對已有對象的影印,所以不會調(diào)用構(gòu)造函數(shù) ;(4)是從文件中還原類的對象,也不會調(diào)用構(gòu)造函數(shù)。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/u014401141/article/details/70308032

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: www一区二区 | 最近2018年手机中文字幕版 | 欧美天天 | 亚洲精品一区在线观看 | 最近的中文字幕在线看视频 | www夜夜操 | 北条麻妃一区二区免费播放 | 国产中文字幕一区 | 精品国产乱码久久久久久牛牛 | 成人小视频在线看 | 黄色片视频免费看 | 国产视频一二区 | 色先锋影院 | 亚洲国产精品尤物yw在线观看 | 国产成人一区 | 日韩免费在线观看 | 日日夜夜精品免费视频 | 亚洲www啪成人一区二区 | 国产区在线 | 国产精品成人一区二区三区夜夜夜 | 国产激情午夜 | 欧美午夜一区二区福利视频 | 亚洲免费成人 | 人人爽在线观看 | 久热中文字幕 | 亚洲电影在线播放 | 午夜在线电影 | 日韩成人免费视频 | 国产视频一区二区视频 | 欧美亚洲视频在线观看 | 欧洲精品一区 | 欧美一级黄色片免费看 | 日韩福利电影 | 免费观看www7722午夜电影 | 亚洲午夜视频在线观看 | 亚洲第十页 | 日韩视频一区 | 国产第一毛片 | av大片在线观看 | 欧美一区二区在线播放 | 欧美激情五月 |