啊?序列化?應該是說壹個數據結構,比如二叉樹之類,序列化以後會變成壹個char數組或者壹個string字符串這樣,方便妳存到文件裏面或者通過網絡傳輸。然後要恢復的時候就是“反序列化”,把文件裏讀出來/從網絡收到的char數組或者string恢復成壹棵二叉樹或者其他什麽東西。
主要就是方便保存
Java中如何實現序列化,有什麽意義?
序列化就是壹種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化後的對象進行讀寫操作,也可將流化後的對象傳輸於網絡之間。序列化是為了解決對象流讀寫操作時可能引發的問題(如果不進行序列化可能會存在數據亂序的問題)。
要實現序列化,需要讓壹個類實現Serializable接口,該接口是壹個標識性接口,標註該類對象是可被序列化的,然後使用壹個輸出流來構造壹個對象輸出流並通過writeObject(Object)方法就可以將實現對象寫出(即保存其狀態);如果需要反序列化則可以用壹個輸入流建立對象輸入流,然後通過readObject方法從流中讀取對象。序列化除了能夠實現對象的持久化之外,還能夠用於對象的深度克隆。
java 中的序列化是什麽意思?有什麽好處
序列化 (Serialization)將對象的狀態信息轉換為可以存儲或傳輸的形式的過程。
序列化是針對自定義類型或者零散數據,好處就是讓數據方便存儲和傳輸(傳遞),妳可以理解為將零散的字母變成壹個字符串(當然實際序列化過程並不是這麽簡單),可以統壹存儲和傳輸,而標準序列化傳遞後,還可以依次讀取出來。
序列化的目的是標準化和可存儲,通常用於數據庫、文件操作以及和系統標準化函數進行通信。
序列化的作用
Object serialization 允許妳將實現了Serializable接口的對象轉換為字節序列,這些字節序列可以被完全存儲以備以後重新生成原來的對象。
舉個例子:
網絡傳輸的時候,可以傳字符串,亦可以傳對象object,例如socket,傳字符串的時候接收方很容易解析出來,但是,傳壹個對象的時候,對方讀完字節流後,不知道妳傳的什麽對象,所以沒辦法給轉成原來的對象並解析對象的屬性,這時候就要用到序列化和反序列化。
類實現序列化接口,socket發送這個對象的字節流,接收方到流後就可以將流反序列化成對象,然後使用對象的方法和屬性。
--這裏只講了壹個網絡傳輸方面的應用,其實還有很多作用的,可以自己研究下
java序列化的作用
簡單的說序列化就是以某種方式將內存中的Java對象編程2進制字節
既然是字節,那麽處理起來就很方便,可以存儲起來,也可以存在文件中、或者發送給別人。
Java平臺允許我們在內存中創建可復用的Java對象,但壹般情況下,只有當JVM處於運行時,這些對象才可能存在,即,這些對象的生命周期不會比JVM的生命周期更長(即每個對象都在JVM中)
但在現實應用中,就可能要停止JVM運行,但有要保存某些指定的對象,並在將來重新讀取被保存的對象。這是Java對象序列化就能夠實現該功能。(可選擇入數據庫、或文件的形式保存)
但是有時候,是需要在網絡上傳輸某些對象,如當使用RMI(遠程方法調用),也需要用到序列化和反序列化
親,如果回答滿意,親即時采納,妳的理解是我回答的動力,謝謝!!!
C#中的對象序列化是什麽意思?序列化有什麽好處?又有什麽具體的應用
序列化就是把壹個對象保存到壹個文件或數據庫字段中去,反序列化就是在適當的時候把這個文件再轉化成原來的對象使用。
我想最主要的作用有:
1、在進程下次啟動時讀取上次保存的對象的信息
2、在不同的AppDomain或進程之間傳遞數據
3、在分布式應用系統中傳遞數據
序列化的作用是什麽呀·
序列化是什麽: 序列化就是將壹個對象的狀態(各個屬性量)保存起來,然後在適當的時候再獲得。 序列化分為兩大部分:序列化和反序列化。
C#序列化和反序列化到底是什麽意思?
序列化就是把壹個對象保存到壹個文件或數據庫字段中去,反序列化就是在適當的時候把這個文件再轉化成原來的對象使用。
我想最主要的作龔有:
1、在進程下次啟動時讀取上次保存的對象的信息
2、在不同的AppDomain或進程之間傳遞數據
3、在分布式應用系統中傳遞數據
Java中對象序列化的作用是什麽?全面壹點,謝謝
1、序列化是幹什麽的?
簡單說就是為了保存在內存中的各種對象的狀態,並且可以把保存的對象狀態再讀出來。雖然妳可以用妳自己的各種各樣的方法來保存Object States,但是Java給妳提供壹種應該比妳自己好的保存對象狀態的機制,那就是序列化。
2、什麽情況下需要序列化
a)當妳想把的內存中的對象保存到壹個文件中或者數據庫中時候;
b)當妳想用套接字在網絡上傳送對象的時候;
c)當妳想通過RMI傳輸對象的時候;
3、當對壹個對象實現序列化時,究竟發生了什麽?
在沒有序列化前,每個保存在堆(Heap)中的對象都有相應的狀態(state),即實例變量(instance ariable)比如:
Foo myFoo = new Foo();
myFoo .setWidth(37);
myFoo.setHeight(70);
當通過下面的代碼序列化之後,MyFoo對象中的width和Height實例變量的值(37,70)都被保存到foo.ser文件中,這樣以後又可以把它 從文件中讀出來,重新在堆中創建原來的對象。當然保存時候不僅僅是保存對象的實例變量的值,JVM還要保存壹些小量信息,比如類的類型等以便恢復原來的對 象。
FileOutputStream fs = new FileOutputStream("foo.ser");
ObjectOutputStream os = new ObjectOutputStream(fs);
os.writeObject(myFoo);
4、實現序列化(保存到壹個文件)的步驟
a)Make a FileOutputStream
java 代碼
FileOutputStream fs = new FileOutputStream("foo.ser");
b)Make a ObjectOutputStream
java 代碼
ObjectOutputStream os = new ObjectOutputStream(fs);
c)write the object
java 代碼
os.writeObject(myObject1);
os.writeObject(myObject2);
os.writeObject(myObject3);
d) close the ObjectOutputStream
java 代碼
os.close();
5、舉例說明
java 代碼
import java.io.*;
public class Box implements Serializable
{
private int width;
private int height;
public void setWidth(int width){
this.width = width;
}
public void setHeight(int height){
this.height = height;
}
public static void main(String[] args){
Box myBox = new Box();
myBox.setWidth(50);
myBox.setHeight(30);
try{
FileOutputStream fs = new FileOutputStream("foo.ser");
ObjectOutputStream os ......
Java中序列化作用是什麽?為什麽要序列化?
序列化是可以講對象長期保存在硬盤上,或通過網絡傳遞給遠端,可以序列化的對象要實現Serializable接口,此接口中沒有方法,是壹個標誌,說明實現此接口的類可以啟動並使用系列化功能;
序列化本質上是將對象解析成二進制流,並且實現Serializable接口的子類都有序列化功能;