日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

什么是Java序列化,如何实现java序列化

發布時間:2025/5/22 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是Java序列化,如何实现java序列化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡要解釋:
  序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網絡之間。
  序列化是為了解決在對對象流進行讀寫操作時所引發的問題。序列化的實現:將需要被序列化的類實現Serializable接口,該接口沒有需要實現的方法,implements Serializable只是為了標注該對象是可被序列化的,
然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即保存其狀態),要恢復的話則用輸入流。

詳細解釋:

當兩個進程在進行遠程通信時,彼此可以發送各種類型的數據。無論是何種類型的數據,都會以二進制序列的形式在網絡上傳送。發送方需要把這個Java對象轉換為字節序列,才能在網絡上傳送;接收方則需要把字節序列再恢復為Java對象。

只能將支持 java.io.Serializable 接口的對象寫入流中。每個 serializable 對象的類都被編碼,編碼內容包括類名和類簽名、對象的字段值和數組值,以及從初始對象中引用的其他所有對象的閉包。
  1.概念

序列化:把Java對象轉換為字節序列的過程。
  反序列化:把字節序列恢復為Java對象的過程。

2.用途

對象的序列化主要有兩種用途:
  1) 把對象的字節序列永久地保存到硬盤上,通常存放在一個文件中;
  2) 在網絡上傳送對象的字節序列
3.對象序列化

序列化API

java.io.ObjectOutputStream代表對象輸出流,它的writeObject(Object obj)方法可對參數指定的obj對象進行序列化,把得到的字節序列寫到一個目標輸出流中。只有實現了Serializable和Externalizable接口的類的對象才能被序列化。

java.io.ObjectInputStream代表對象輸入流,它的readObject()方法從一個源輸入流中讀取字節序列,再把它們反序列化為一個對象,并將其返回。

代碼示例

import java.io.*; import java.util.Date;public class ObjectSaver {public static void main(String[] args) throws Exception {/*其中的 D:\\objectFile.obj 表示存放序列化對象的文件*///序列化對象ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D:\\objectFile.obj"));Customer customer = new Customer("王麻子", 24);out.writeObject("你好!"); //寫入字面值常量out.writeObject(new Date()); //寫入匿名Date對象out.writeObject(customer); //寫入customer對象out.close();//反序列化對象ObjectInputStream in = new ObjectInputStream(new FileInputStream("D:\\objectFile.obj"));System.out.println("obj1 " + (String) in.readObject()); //讀取字面值常量System.out.println("obj2 " + (Date) in.readObject()); //讀取匿名Date對象Customer obj3 = (Customer) in.readObject(); //讀取customer對象System.out.println("obj3 " + obj3);in.close();} }class Customer implements Serializable {private String name;private int age;public Customer(String name, int age) {this.name = name;this.age = age;}public String toString() {return "name=" + name + ", age=" + age;} }

總結

以上是生活随笔為你收集整理的什么是Java序列化,如何实现java序列化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。