Java序列化的機制介紹-創(chuàng)新互聯(lián)

這篇文章主要介紹“Java序列化的機制介紹”,在日常操作中,相信很多人在Java序列化的機制介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java序列化的機制介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比彰武網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式彰武網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋彰武地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

Java 序列化

Java 提供了一種對象序列化的機制,該機制中,一個對象可以被表示為一個字節(jié)序列,該字節(jié)序列包括該對象的數(shù)據(jù)、有關(guān)對象的類型的信息和存儲在對象中數(shù)據(jù)的類型。

將序列化對象寫入文件之后,可以從文件中讀取出來,并且對它進行反序列化,也就是說,對象的類型信息、對象的數(shù)據(jù),還有對象中的數(shù)據(jù)類型可以用來在內(nèi)存中新建對象。

整個過程都是Java虛擬機(JVM)獨立的,也就是說,在一個平臺上序列化的對象可以在另一個完全不同的平臺上反序列化該對象。

類ObjectInputStream 和ObjectOutputStream是高層次的數(shù)據(jù)流,它們包含序列化和反序列化對象的方法。

ObjectOutputStream 類包含很多寫方法來寫各種數(shù)據(jù)類型,但是一個特別的方法例外:public final void writeObject(Object x) throws IOException

上面的方法序列化一個對象,并將它發(fā)送到輸出流。相似的ObjectInputStream 類包含如下反序列化一個對象的方法:

public final Object readObject() throws IOException, 

                                              ClassNotFoundException

請注意,一個類的對象要想序列化成功,必須滿足兩個條件:

1. 該類必須實現(xiàn) java.io.Serializable 對象。

2. 該類的所有屬性必須是可序列化的。如果有一個屬性不是可序列化的,則該屬性必須注明是短暫的。

http://www.iis7.com/b/wzjk/

如果你想知道一個Java標準類是否是可序列化的,請查看該類的文檔。檢驗一個類的實例是否能序列化十分簡單, 只需要查看該類有沒有實現(xiàn)java.io.Serializable接口。

。。。

序列化對象

ObjectOutputStream 類用來序列化一個對象,如下的SerializeDemo例子實例化了一個Employee對象,并將該對象序列化到一個文件中。

該程序執(zhí)行后,就創(chuàng)建了一個名為employee.ser文件。該程序沒有任何輸出,但是你可以通過代碼研讀來理解程序的作用。

注意: 當序列化一個對象到文件時, 按照Java的標準約定是給文件一個.ser擴展名。

。。。

反序列化對象

這里要注意以下要點:

readObject() 方法中的try/catch代碼塊嘗試捕獲 ClassNotFoundException異常。對于JVM可以反序列化對象,它必須是能夠找到字節(jié)碼的類。如果JVM在反序列化對象的過程中找不到該類,則拋出一個 ClassNotFoundException異常。

注意,readObject()方法的返回值被轉(zhuǎn)化成Employee引用。

當對象被序列化時,屬性SSN的值為111222333,但是因為該屬性是短暫的,該值沒有被發(fā)送到輸出流。所以反序列化后Employee對象的SSN屬性為0。

::::::::::::::::::::::::::::::::::::::::::::::

Java 網(wǎng)絡編程

網(wǎng)絡編程是指編寫運行在多個設備(計算機)的程序,這些設備都通過網(wǎng)絡連接起來。

java.net包中J2SE的API包含有類和接口,它們提供低層次的通信細節(jié)。你可以直接使用這些類和接口,來專注于解決問題,而不用關(guān)注通信細節(jié)。

java.net包中提供了兩種常見的網(wǎng)絡協(xié)議的支持:

-TCP: TCP是傳輸控制協(xié)議的縮寫,它保障了兩個應用程序之間的可靠通信。通常用于互聯(lián)網(wǎng)協(xié)議,被稱TCP / IP。

-UDP:UDP是用戶數(shù)據(jù)報協(xié)議的縮寫,一個無連接的協(xié)議。提供了應用程序之間要發(fā)送的數(shù)據(jù)的數(shù)據(jù)包。

現(xiàn)在我們主要講解以下兩個主題。

-Socket 編程: 這是使用最廣泛的網(wǎng)絡概念,它已被解釋地非常詳細

-URL 處理: 這部分會在另外的篇幅里講,點擊這里更詳細地了解在Java語言中的URL處理。

。。。

Socket 編程

套接字使用TCP提供了兩臺計算機之間的通信機制。 客戶端程序創(chuàng)建一個套接字,并嘗試連接服務器的套接字。

當連接建立時,服務器會創(chuàng)建一個Socket對象??蛻舳撕头掌鳜F(xiàn)在可以通過對Socket對象的寫入和讀取來進行進行通信。

java.net.Socket類代表一個套接字,并且java.net.ServerSocket類為服務器程序提供了一種來監(jiān)聽客戶端,并與他們建立連接的機制。

以下步驟在兩臺計算機之間使用套接字建立TCP連接時會出現(xiàn):

-服務器實例化一個ServerSocket對象,表示通過服務器上的端口通信。

-服務器調(diào)用 ServerSocket類 的accept()方法,該方法將一直等待,直到客戶端連接到服務器上給定的端口。

-服務器正在等待時,一個客戶端實例化一個Socket對象,指定服務器名稱和端口號來請求連接。

-Socket類的構(gòu)造函數(shù)試圖將客戶端連接到指定的服務器和端口號。如果通信被建立,則在客戶端創(chuàng)建一個Socket對象能夠與服務器進行通信。

-在服務器端,accept()方法返回服務器上一個新的socket引用,該socket連接到客戶端的socket。

連接建立后,通過使用I/O流在進行通信。每一個socket都有一個輸出流和一個輸入流??蛻舳说妮敵隽鬟B接到服務器端的輸入流,而客戶端的輸入流連接到服務器端的輸出流。

TCP是一個雙向的通信協(xié)議,因此數(shù)據(jù)可以通過兩個數(shù)據(jù)流在同一時間發(fā)送.以下是一些類提供的一套完整的有用的方法來實現(xiàn)sockets。

到此,關(guān)于“Java序列化的機制介紹”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

新聞標題:Java序列化的機制介紹-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://muchs.cn/article36/coeepg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、小程序開發(fā)微信小程序、做網(wǎng)站用戶體驗、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設