av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

java語言

java序列化的方法有哪些

時間:2025-05-16 23:00:25 java語言 我要投稿
  • 相關(guān)推薦

java序列化的方法有哪些

  簡介

  將序列化對象寫入文件之后,可以從文件中讀取出來,并且對它進(jìn)行反序列化,也就是說,對象的類型信息、對象的數(shù)據(jù),還有對象中的數(shù)據(jù)類型可以用來在內(nèi)存中新建對象。

  整個過程都是Java虛擬機(jī)(JVM)獨(dú)立的,也就是說,在一個平臺上序列化的對象可以在另一個完全不同的平臺上反序列化該對象。

  類ObjectInputStream 和ObjectOutputStream是高層次的數(shù)據(jù)流,它們包含序列化和反序列化對象的方法。

  ObjectOutputStream 類包含很多寫方法來寫各種數(shù)據(jù)類型,但是一個特別的方法例外:

  public final void writeObject(Object x) throws IOException

  上面的方法序列化一個對象,并將它發(fā)送到輸出流。相似的ObjectInputStream 類包含如下反序列化一個對象的方法:

  public final Object readObject() throws IOException, ClassNotFoundException

  該方法從流中取出下一個對象,并將對象反序列化。它的返回值為Object,因此,你需要將它轉(zhuǎn)換成合適的數(shù)據(jù)類型。

  演示序列化

  為了演示序列化在Java中是怎樣工作的,我將使用之前教程中提到的Employee類,假設(shè)我們定義了如下的Employee類,該類實(shí)現(xiàn)了Serializable 接口。

  public class Employee implements java.io.Serializable{ public String name; public String address; public transient int SSN; public int number; public void mailCheck() { System.out.println("Mailing a check to " + name + " " + address); }}

  請注意,一個類的對象要想序列化成功,必須滿足兩個條件:

  該類必須實(shí)現(xiàn) java.io.Serializable 對象。

  該類的所有屬性必須是可序列化的。如果有一個屬性不是可序列化的,則該屬性必須注明是短暫的。

  如果你想知道一個Java標(biāo)準(zhǔn)類是否是可序列化的,請查看該類的文檔。檢驗(yàn)一個類的實(shí)例是否能序列化十分簡單, 只需要查看該類有沒有實(shí)現(xiàn)java.io.Serializable接口!鞠嚓P(guān)閱讀】

  什么是java多態(tài)

  簡介

  多態(tài)是同一個行為具有多個不同表現(xiàn)形式或形態(tài)的能力。

  多態(tài)性是對象多種表現(xiàn)形式的體現(xiàn)。

  比如我們說"寵物"這個對象,它就有很多不同的表達(dá)或?qū)崿F(xiàn),比如有小貓、小狗、蜥蜴等等。那么我到寵物店說"請給我一只寵物",服務(wù)員給我小貓、小狗或者蜥蜴都可以,我們就說"寵物"這個對象就具備多態(tài)性。

  接下來讓我們通過實(shí)例來了解Java的多態(tài)。

  例子

  public interface Vegetarian{}public class Animal{}public class Deer extends Animal implements Vegetarian{}

  因?yàn)镈eer類具有多重繼承,所以它具有多態(tài)性。以上實(shí)例解析如下:

  一個 Deer IS-A(是一個) Animal

  一個 Deer IS-A(是一個) Vegetarian

  一個 Deer IS-A(是一個) Deer

  一個 Deer IS-A(是一個)Object

  在Java中,所有的對象都具有多態(tài)性,因?yàn)槿魏螌ο蠖寄芡ㄟ^IS-A測試的類型和Object類。

  訪問一個對象的唯一方法就是通過引用型變量。

  引用型變量只能有一種類型,一旦被聲明,引用型變量的類型就不能被改變了。

  引用型變量不僅能夠被重置為其他對象,前提是這些對象沒有被聲明為final。還可以引用和它類型相同的或者相兼容的對象。它可以聲明為類類型或者接口類型。

  當(dāng)我們將引用型變量應(yīng)用于Deer對象的引用時,下面的聲明是合法的:

  Deer d = new Deer();Animal a = d;Vegetarian v = d;Object o = d;

  所有的引用型變量d,a,v,o都指向堆中相同的Deer對象。

【java序列化的方法有哪些】相關(guān)文章:

java序列化的方法10-06

學(xué)習(xí)java的方法有哪些07-01

Java讀取郵件的方法有哪些05-31

java寫入文件的方法有哪些10-05

JAVA中終止線程的方法有哪些07-26

Java File類有哪些常用方法07-27

java對象序列化與對象反序列化08-23

Java編程節(jié)省內(nèi)存的方法有哪些08-10

java輸入數(shù)據(jù)流的方法有哪些06-04