java序列化有什麼用
❶ 為什麼java要實現對象序列化
對象的序列化就是為了數據傳輸,在你的代碼的里是對象格式,而在傳輸的時候不可能還保持這對象的樣子。
當兩個進程在進行遠程通信時,彼此可以發送各種類型的數據。無論是何種類型的數據,都會以二進制序列的形式在網路上傳送。發送方需要把這個Java對象轉換為位元組序列,才能在網路上傳送;接收方則需要把位元組序列再恢復為Java對象。
1.概念
序列化:把Java對象轉換為位元組序列的過程。
反序列化:把位元組序列恢復為Java對象的過程。
2.用途
對象的序列化主要有兩種用途:
1)
把對象的位元組序列永久地保存到硬碟上,通常存放在一個文件中;
2)
在網路上傳送對象的位元組序列。
❷ java對象的序列化是什麼意思
1、序列化是干什麼的?
簡單說就是為了保存在內存中的各種對象的狀態,並且可以把保存的對象狀態再讀出來。雖然你可以 用自己的各種方法來保存Object states,
但是Java給你提供一種應該比你自己好的保存對象狀態的機制、那就是序列化。
2、什麼情況下需要序列化?
a)當你想把的內存中的對象保存到一個文件或者資料庫中時候。
b)當你想用套接字在網路上傳送對象的時候
c)當你想通過RMI傳輸對象的時候(RMI->Remote Method Invocation 遠程方法調用)
3、當對一個對象實現序列化時,究竟發生了什麼?
在沒有序列化前,每個保存在堆(Heap)中的對象都有相應的狀態(state),即實體變數(instance ariable)
例如:Foo myFoo=new Foo(); myFoo.setWidth(20); myFoo.setHeight(40);
❸ java中如何實現序列化,有什麼意義
首先我們要把准備要序列化類,實現 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個對象轉為二進制,統族理解為「打碎」)
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)) ;
//實例化類
Person per = new Person("張三",30) ; oos.writeObject(per) ;//把類對象序列化
oos.close() ;
}
}