成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

這篇文章主要介紹“Java序列化的機(jī)制介紹”,在日常操作中,相信很多人在Java序列化的機(jī)制介紹問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java序列化的機(jī)制介紹”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

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

Java 序列化

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

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

整個(gè)過(guò)程都是Java虛擬機(jī)(JVM)獨(dú)立的,也就是說(shuō),在一個(gè)平臺(tái)上序列化的對(duì)象可以在另一個(gè)完全不同的平臺(tái)上反序列化該對(duì)象。

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

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

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

public final Object readObject() throws IOException, 

                                              ClassNotFoundException

請(qǐng)注意,一個(gè)類(lèi)的對(duì)象要想序列化成功,必須滿(mǎn)足兩個(gè)條件:

1. 該類(lèi)必須實(shí)現(xiàn) java.io.Serializable 對(duì)象。

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

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

如果你想知道一個(gè)Java標(biāo)準(zhǔn)類(lèi)是否是可序列化的,請(qǐng)查看該類(lèi)的文檔。檢驗(yàn)一個(gè)類(lèi)的實(shí)例是否能序列化十分簡(jiǎn)單, 只需要查看該類(lèi)有沒(méi)有實(shí)現(xiàn)java.io.Serializable接口。

。。。

序列化對(duì)象

ObjectOutputStream 類(lèi)用來(lái)序列化一個(gè)對(duì)象,如下的SerializeDemo例子實(shí)例化了一個(gè)Employee對(duì)象,并將該對(duì)象序列化到一個(gè)文件中。

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

注意: 當(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é)碼的類(lèi)。如果JVM在反序列化對(duì)象的過(guò)程中找不到該類(lèi),則拋出一個(gè) ClassNotFoundException異常。

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

當(dāng)對(duì)象被序列化時(shí),屬性SSN的值為111222333,但是因?yàn)樵搶傩允嵌虝旱?,該值沒(méi)有被發(fā)送到輸出流。所以反序列化后Employee對(duì)象的SSN屬性為0。

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

Java 網(wǎng)絡(luò)編程

網(wǎng)絡(luò)編程是指編寫(xiě)運(yùn)行在多個(gè)設(shè)備(計(jì)算機(jī))的程序,這些設(shè)備都通過(guò)網(wǎng)絡(luò)連接起來(lái)。

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

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

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

-UDP:UDP是用戶(hù)數(shù)據(jù)報(bào)協(xié)議的縮寫(xiě),一個(gè)無(wú)連接的協(xié)議。提供了應(yīng)用程序之間要發(fā)送的數(shù)據(jù)的數(shù)據(jù)包。

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

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

-URL 處理: 這部分會(huì)在另外的篇幅里講,點(diǎn)擊這里更詳細(xì)地了解在Java語(yǔ)言中的URL處理。

。。。

Socket 編程

套接字使用TCP提供了兩臺(tái)計(jì)算機(jī)之間的通信機(jī)制。 客戶(hù)端程序創(chuàng)建一個(gè)套接字,并嘗試連接服務(wù)器的套接字。

當(dāng)連接建立時(shí),服務(wù)器會(huì)創(chuàng)建一個(gè)Socket對(duì)象。客戶(hù)端和服務(wù)器現(xiàn)在可以通過(guò)對(duì)Socket對(duì)象的寫(xiě)入和讀取來(lái)進(jìn)行進(jìn)行通信。

java.net.Socket類(lèi)代表一個(gè)套接字,并且java.net.ServerSocket類(lèi)為服務(wù)器程序提供了一種來(lái)監(jiān)聽(tīng)客戶(hù)端,并與他們建立連接的機(jī)制。

以下步驟在兩臺(tái)計(jì)算機(jī)之間使用套接字建立TCP連接時(shí)會(huì)出現(xiàn):

-服務(wù)器實(shí)例化一個(gè)ServerSocket對(duì)象,表示通過(guò)服務(wù)器上的端口通信。

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

-服務(wù)器正在等待時(shí),一個(gè)客戶(hù)端實(shí)例化一個(gè)Socket對(duì)象,指定服務(wù)器名稱(chēng)和端口號(hào)來(lái)請(qǐng)求連接。

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

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

連接建立后,通過(guò)使用I/O流在進(jìn)行通信。每一個(gè)socket都有一個(gè)輸出流和一個(gè)輸入流??蛻?hù)端的輸出流連接到服務(wù)器端的輸入流,而客戶(hù)端的輸入流連接到服務(wù)器端的輸出流。

TCP是一個(gè)雙向的通信協(xié)議,因此數(shù)據(jù)可以通過(guò)兩個(gè)數(shù)據(jù)流在同一時(shí)間發(fā)送.以下是一些類(lèi)提供的一套完整的有用的方法來(lái)實(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ī)?lái)更多實(shí)用的文章!

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

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

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
桂东县| 凭祥市| 镇安县| 武平县| 南岸区| 花莲市| 敖汉旗| 班玛县| 莎车县| 班玛县| 班玛县| 高密市| 呼和浩特市| 肇源县| 洞口县| 观塘区| 洪湖市| 唐海县| 驻马店市| 沧州市| 长泰县| 昌都县| 静乐县| 云龙县| 定州市| 彰武县| 崇明县| 潢川县| 寿光市| 兰西县| 婺源县| 天台县| 涡阳县| 交城县| 神池县| 仁布县| 肇庆市| 峡江县| 沛县| 巢湖市| 乌鲁木齐市|