1序列化:把對(duì)象轉(zhuǎn)為字節(jié)序列的過程 ?為序列化;
2相反:字節(jié)---------->對(duì)象 為反序列化
3 序列化的場景1:放入磁盤文件2:網(wǎng)絡(luò)上傳輸;
(3解釋:網(wǎng)絡(luò)上和磁盤上數(shù)據(jù)都是二進(jìn)制格式存放的 我理解我字節(jié)
而我們程序里new一個(gè)對(duì)象都是object 存在內(nèi)存里)
例子1;
網(wǎng)路上:當(dāng)兩個(gè)進(jìn)程在進(jìn)行遠(yuǎn)程通信時(shí),彼此可以發(fā)送各種類型的數(shù)據(jù)。無論是何種類型的數(shù)據(jù),都會(huì)以二進(jìn)制序列的形式在網(wǎng)絡(luò)上傳送。發(fā)送方需要把這個(gè)Java對(duì)象轉(zhuǎn)換為字節(jié)序列,才能在網(wǎng)絡(luò)上傳送;接收方則需要把字節(jié)序列再恢復(fù)為Java對(duì)象
一般自己寫一個(gè)person類 ? ? ? list = xxxxxxx方法(person.class);
例子2:
程序里寫一個(gè)person class(new一個(gè)對(duì)象 person)
1:序列化:new一個(gè)對(duì)象 person 寫到磁盤里——》?
ObjectOutputStream oo=newObjectOutputStream(newFileOutputStream(41newFile("E:/Person.txt")));
oo.writeObject(person);
2:反序列化:從磁盤里獲取一個(gè)person對(duì)象--------》
ObjectInputStream ois =newObjectInputStream(newFileInputStream(57newFile("E:/Person.txt")));
Person person =(Person) ois.readObject();