這篇文章主要介紹“Java序列化的機(jī)制介紹”,在日常操作中,相信很多人在Java序列化的機(jī)制介紹問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java序列化的機(jī)制介紹”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比彰武網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式彰武網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋彰武地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。Java 序列化
Java 提供了一種對(duì)象序列化的機(jī)制,該機(jī)制中,一個(gè)對(duì)象可以被表示為一個(gè)字節(jié)序列,該字節(jié)序列包括該對(duì)象的數(shù)據(jù)、有關(guān)對(duì)象的類型的信息和存儲(chǔ)在對(duì)象中數(shù)據(jù)的類型。
將序列化對(duì)象寫入文件之后,可以從文件中讀取出來,并且對(duì)它進(jìn)行反序列化,也就是說,對(duì)象的類型信息、對(duì)象的數(shù)據(jù),還有對(duì)象中的數(shù)據(jù)類型可以用來在內(nèi)存中新建對(duì)象。
整個(gè)過程都是Java虛擬機(jī)(JVM)獨(dú)立的,也就是說,在一個(gè)平臺(tái)上序列化的對(duì)象可以在另一個(gè)完全不同的平臺(tái)上反序列化該對(duì)象。
類ObjectInputStream 和ObjectOutputStream是高層次的數(shù)據(jù)流,它們包含序列化和反序列化對(duì)象的方法。
ObjectOutputStream 類包含很多寫方法來寫各種數(shù)據(jù)類型,但是一個(gè)特別的方法例外:public final void writeObject(Object x) throws IOException
上面的方法序列化一個(gè)對(duì)象,并將它發(fā)送到輸出流。相似的ObjectInputStream 類包含如下反序列化一個(gè)對(duì)象的方法:
public final Object readObject() throws IOException,
ClassNotFoundException
請(qǐng)注意,一個(gè)類的對(duì)象要想序列化成功,必須滿足兩個(gè)條件:
1. 該類必須實(shí)現(xiàn) java.io.Serializable 對(duì)象。
2. 該類的所有屬性必須是可序列化的。如果有一個(gè)屬性不是可序列化的,則該屬性必須注明是短暫的。
http://www.iis7.com/b/wzjk/
如果你想知道一個(gè)Java標(biāo)準(zhǔn)類是否是可序列化的,請(qǐng)查看該類的文檔。檢驗(yàn)一個(gè)類的實(shí)例是否能序列化十分簡(jiǎn)單, 只需要查看該類有沒有實(shí)現(xiàn)java.io.Serializable接口。
。。。
序列化對(duì)象
ObjectOutputStream 類用來序列化一個(gè)對(duì)象,如下的SerializeDemo例子實(shí)例化了一個(gè)Employee對(duì)象,并將該對(duì)象序列化到一個(gè)文件中。
該程序執(zhí)行后,就創(chuàng)建了一個(gè)名為employee.ser文件。該程序沒有任何輸出,但是你可以通過代碼研讀來理解程序的作用。
注意: 當(dāng)序列化一個(gè)對(duì)象到文件時(shí), 按照J(rèn)ava的標(biāo)準(zhǔn)約定是給文件一個(gè).ser擴(kuò)展名。
。。。
反序列化對(duì)象
這里要注意以下要點(diǎn):
readObject() 方法中的try/catch代碼塊嘗試捕獲 ClassNotFoundException異常。對(duì)于JVM可以反序列化對(duì)象,它必須是能夠找到字節(jié)碼的類。如果JVM在反序列化對(duì)象的過程中找不到該類,則拋出一個(gè) ClassNotFoundException異常。
注意,readObject()方法的返回值被轉(zhuǎn)化成Employee引用。
當(dāng)對(duì)象被序列化時(shí),屬性SSN的值為111222333,但是因?yàn)樵搶傩允嵌虝旱模撝禌]有被發(fā)送到輸出流。所以反序列化后Employee對(duì)象的SSN屬性為0。
::::::::::::::::::::::::::::::::::::::::::::::
Java 網(wǎng)絡(luò)編程
網(wǎng)絡(luò)編程是指編寫運(yùn)行在多個(gè)設(shè)備(計(jì)算機(jī))的程序,這些設(shè)備都通過網(wǎng)絡(luò)連接起來。
java.net包中J2SE的API包含有類和接口,它們提供低層次的通信細(xì)節(jié)。你可以直接使用這些類和接口,來專注于解決問題,而不用關(guān)注通信細(xì)節(jié)。
java.net包中提供了兩種常見的網(wǎng)絡(luò)協(xié)議的支持:
-TCP: TCP是傳輸控制協(xié)議的縮寫,它保障了兩個(gè)應(yīng)用程序之間的可靠通信。通常用于互聯(lián)網(wǎng)協(xié)議,被稱TCP / IP。
-UDP:UDP是用戶數(shù)據(jù)報(bào)協(xié)議的縮寫,一個(gè)無連接的協(xié)議。提供了應(yīng)用程序之間要發(fā)送的數(shù)據(jù)的數(shù)據(jù)包。
現(xiàn)在我們主要講解以下兩個(gè)主題。
-Socket 編程: 這是使用最廣泛的網(wǎng)絡(luò)概念,它已被解釋地非常詳細(xì)
-URL 處理: 這部分會(huì)在另外的篇幅里講,點(diǎn)擊這里更詳細(xì)地了解在Java語言中的URL處理。
。。。
Socket 編程
套接字使用TCP提供了兩臺(tái)計(jì)算機(jī)之間的通信機(jī)制。 客戶端程序創(chuàng)建一個(gè)套接字,并嘗試連接服務(wù)器的套接字。
當(dāng)連接建立時(shí),服務(wù)器會(huì)創(chuàng)建一個(gè)Socket對(duì)象。客戶端和服務(wù)器現(xiàn)在可以通過對(duì)Socket對(duì)象的寫入和讀取來進(jìn)行進(jìn)行通信。
java.net.Socket類代表一個(gè)套接字,并且java.net.ServerSocket類為服務(wù)器程序提供了一種來監(jiān)聽客戶端,并與他們建立連接的機(jī)制。
以下步驟在兩臺(tái)計(jì)算機(jī)之間使用套接字建立TCP連接時(shí)會(huì)出現(xiàn):
-服務(wù)器實(shí)例化一個(gè)ServerSocket對(duì)象,表示通過服務(wù)器上的端口通信。
-服務(wù)器調(diào)用 ServerSocket類 的accept()方法,該方法將一直等待,直到客戶端連接到服務(wù)器上給定的端口。
-服務(wù)器正在等待時(shí),一個(gè)客戶端實(shí)例化一個(gè)Socket對(duì)象,指定服務(wù)器名稱和端口號(hào)來請(qǐng)求連接。
-Socket類的構(gòu)造函數(shù)試圖將客戶端連接到指定的服務(wù)器和端口號(hào)。如果通信被建立,則在客戶端創(chuàng)建一個(gè)Socket對(duì)象能夠與服務(wù)器進(jìn)行通信。
-在服務(wù)器端,accept()方法返回服務(wù)器上一個(gè)新的socket引用,該socket連接到客戶端的socket。
連接建立后,通過使用I/O流在進(jìn)行通信。每一個(gè)socket都有一個(gè)輸出流和一個(gè)輸入流。客戶端的輸出流連接到服務(wù)器端的輸入流,而客戶端的輸入流連接到服務(wù)器端的輸出流。
TCP是一個(gè)雙向的通信協(xié)議,因此數(shù)據(jù)可以通過兩個(gè)數(shù)據(jù)流在同一時(shí)間發(fā)送.以下是一些類提供的一套完整的有用的方法來實(shí)現(xiàn)sockets。
到此,關(guān)于“Java序列化的機(jī)制介紹”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
新聞標(biāo)題:Java序列化的機(jī)制介紹-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://m.newbst.com/article36/coeepg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、小程序開發(fā)、微信小程序、做網(wǎng)站、用戶體驗(yàn)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容