色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java序列化常見(jiàn)的三個(gè)問(wèn)題

瀏覽:3日期:2022-08-27 11:02:41

1、Java序列化與反序列化是什么?

Java序列化是指把Java對(duì)象轉(zhuǎn)換為字節(jié)序列的過(guò)程,而Java反序列化是指把字節(jié)序列恢復(fù)為Java對(duì)象的過(guò)程:

序列化:對(duì)象序列化的最主要的用處就是在傳遞和保存對(duì)象的時(shí)候,保證對(duì)象的完整性和可傳遞性。序列化是把對(duì)象轉(zhuǎn)換成有序字節(jié)流,以便在網(wǎng)絡(luò)上傳輸或者保存在本地文件中。核心作用是對(duì)象狀態(tài)的保存與重建。 反序列化:客戶端從文件中或網(wǎng)絡(luò)上獲得序列化后的對(duì)象字節(jié)流,根據(jù)字節(jié)流中所保存的對(duì)象狀態(tài)及描述信息,通過(guò)反序列化重建對(duì)象。

2、為什么需要序列化與反序列化?

為什么要序列化,那就是說(shuō)一下序列化的好處嘍,序列化有什么什么優(yōu)點(diǎn),所以我們要序列化。

一:對(duì)象序列化可以實(shí)現(xiàn)分布式對(duì)象。

主要應(yīng)用例如:RMI(即遠(yuǎn)程調(diào)用Remote Method Invocation)要利用對(duì)象序列化運(yùn)行遠(yuǎn)程主機(jī)上的服務(wù),就像在本地機(jī)上運(yùn)行對(duì)象時(shí)一樣。

二:java對(duì)象序列化不僅保留一個(gè)對(duì)象的數(shù)據(jù),而且遞歸保存對(duì)象引用的每個(gè)對(duì)象的數(shù)據(jù)。

可以將整個(gè)對(duì)象層次寫入字節(jié)流中,可以保存在文件中或在網(wǎng)絡(luò)連接上傳遞。利用對(duì)象序列化可以進(jìn)行對(duì)象的'深復(fù)制',即復(fù)制對(duì)象本身及引用的對(duì)象本身。序列化一個(gè)對(duì)象可能得到整個(gè)對(duì)象序列。

三:序列化可以將內(nèi)存中的類寫入文件或數(shù)據(jù)庫(kù)中。

比如:將某個(gè)類序列化后存為文件,下次讀取時(shí)只需將文件中的數(shù)據(jù)反序列化就可以將原先的類還原到內(nèi)存中。也可以將類序列化為流數(shù)據(jù)進(jìn)行傳輸。

總的來(lái)說(shuō)就是將一個(gè)已經(jīng)實(shí)例化的類轉(zhuǎn)成文件存儲(chǔ),下次需要實(shí)例化的時(shí)候只要反序列化即可將類實(shí)例化到內(nèi)存中并保留序列化時(shí)類中的所有變量和狀態(tài)。

四:對(duì)象、文件、數(shù)據(jù),有許多不同的格式,很難統(tǒng)一傳輸和保存。

序列化以后就都是字節(jié)流了,無(wú)論原來(lái)是什么東西,都能變成一樣的東西,就可以進(jìn)行通用的格式傳輸或保存,傳輸結(jié)束以后,要再次使用,就進(jìn)行反序列化還原,這樣對(duì)象還是對(duì)象,文件還是文件。

3、如何實(shí)現(xiàn)Java序列化與反序列化

首先我們要把準(zhǔn)備要序列化類,實(shí)現(xiàn) Serializabel接口

例如:我們要Person類里的name和age都序列化

import java.io.Serializable;public class Person implements Serializable { //本類可以序列化 private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String toString() { return '姓名:' + this.name + ',年齡' + this.age; }}

然后:我們將name和age序列化(也就是把這2個(gè)對(duì)象轉(zhuǎn)為二進(jìn)制,理解為“打碎”)

package org.lxh.SerDemo;import java.io.File;import java.io.FileOutputStream;import java.io.ObjectOutputStream;public class ObjectOutputStreamDemo { //序列化 public static void main(String[] args) throws Exception { //序列化后生成指定文件路徑 File file = new File('D:' + File.separator + 'person.ser'); ObjectOutputStream oos = null; //裝飾流(流) oos = new ObjectOutputStream(new FileOutputStream(file)); //實(shí)例化類 Person per = new Person('張三', 30); oos.writeObject(per); //把類對(duì)象序列化 oos.close(); }}

以上就是Java序列化常見(jiàn)的三個(gè)問(wèn)題的詳細(xì)內(nèi)容,更多關(guān)于Java序列化 的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 亚洲日本中文字幕在线 | 国产精品白浆流出视频 | 兔费看全黄三级 | 欧美精品日本一级特黄 | 国产在线精品成人一区二区三区 | 一区二区三区免费视频网站 | 偷拍小视频99在线 | 亚洲毛片视频 | 成人午夜在线视频 | 九九视频精品全部免费播放 | 久久亚洲一级毛片 | 黄色一级片网址 | 91成人免费在线视频 | 亚洲视频在线免费播放 | 亚洲人视频在线观看 | 99久久精品国产免费 | 亚洲免费视频网址 | 美女视频黄a视频免费全过程 | 欧美另类久久久精品 | 成人日韩在线观看 | 大片毛片女女女女女女女 | 99国产成人高清在线视频 | 国产精品久久久久久免费播放 | 在线观看免费av网 | 萌白酱福利视频 | 色拍拍噜噜噜aⅴ在线观看 色青青草原桃花久久综合 色婷婷91 | av片免费大全在线观看不卡 | 亚洲欧美一区在线 | 一区二区三区高清在线 | 日本免费人成黄页网观看视频 | 成人高清视频免费观看 | 韩国免费特一级毛片 | 亚洲最大福利视频 | 在线91精品国产免费 | 狠狠色丁香久久综合网 | 久草在线在线 | 亚洲精品美女国产一区 | 国产精品自拍在线观看 | 欧美日韩亚洲高清不卡一区二区三区 | 国产精品久久久久久亚洲伦理 | 在线久久 |