JAVA物件序列化和反序列化

2021-08-20 03:33:33 字數 2206 閱讀 6358

org.apache.catalina.session.persistentmanager
public

class

person

implements

serializable

public

person(string name, integer age)

//getter setter方法省略...

@override

public string tostring()

}

public

class myserilizable

}

[peter, 27]
transient

private integer age = null;

[peter, null] //返序列化時沒有值,說明age欄位未被序列化
//自定義序列化

private

void

writeobject(objectoutputstream out) throws ioexception

//反序列化

private

void

readobject(objectinputstream in) throws ioexception, classnotfoundexception

public

class

teacher

implements

externalizable

public

teacher(string name,integer age)

//setter、getter方法省略

@override

public

void

writeexternal(objectoutput out) throws ioexception

@override

public

void

readexternal(objectinput in) throws ioexception,

classnotfoundexception

@override

public string tostring()

}

public

class myserilizable

}

有參構造

無參構造 //與serializable 不同的是,還呼叫了無參構造

[peter, null] //age未被序列化,所以未取到值

3

public

class

person

implements

serializable

public

static person getinstance()

private string name = null;

private integer age = null;

private gender gender = null;

private

person()

private

person(string name, integer age, string gender)

...

}

public

class myserilizable

}

有參構造  

[john, 31, 男]

true

//說明是同乙個物件

雖然加static也能讓某個屬性不被序列化,但static不是這麼用的

要序列化的物件的引用屬性也必須是可序列化的,否則該物件不可序列化,除非以transient關鍵字修飾該屬性使其不用序列化。

反序列化地象時必須有序列化物件生成的class檔案(很多沒有被序列化的資料需要從class檔案獲取)

當通過檔案、網路來讀取序列化後的物件時,必須按實際的寫入順序讀取。

JAVA物件序列化,反序列化

理解序列化和反序列化對理解物件導向有很大的幫助。舉例如下,序列化格式自己定義 我們有兩個類,動物,人,人繼承動物。其中 人的屬性有 name 名稱 phonenum 手機號碼 等 人的方法有 serialize deserialize 動物的屬性有 mood 情緒 性別 等 動物的方法有 seria...

物件序列化和反序列化

物件序列化有很多方式,在這裡我只講用xml序列化,我們從開始序列化講起,首先,你要在需要被序列化的類前面寫上 serializable 表示該類的例項可以被序列化,其次在要執行序列化的 去中寫入using system.xml.serialization xml序列化必須的 using system...

物件序列化和反序列化

c 提供三種序列化的方法,與此有關的三個類分別是 binaryserialize soapserialize xmlserialize 以二進位制的序列化和反序列化為例,先建立乙個實體類product。1 serializable 2public class product316 17public ...