成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

java序列化

keelii / 2804人閱讀

摘要:序列化是干什么的簡單說就是為了保存在內(nèi)存中的各種對象的狀態(tài)也就是實(shí)例變量,不是方法,并且可以把保存的對象狀態(tài)再讀出來。備注當(dāng)子類實(shí)現(xiàn)序列化時父類自動序列化

package com.test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class Test {
    public static void main(String[] args) {
        Myfoo myfoo = new Myfoo();
        myfoo.setHigth(27);
        myfoo.setWidth(12);
        
        try {
            ObjectOutputStream out = new ObjectOutputStream(new           FileOutputStream("C:foo.txt"));
            out.writeObject(myfoo);
            ObjectInputStream in = new ObjectInputStream(new FileInputStream("C:foo.txt"));
            Myfoo m = (Myfoo)in.readObject();
            System.out.println(m.getHigth());
            System.out.println(m.getWidth());
            System.out.println(m.age);
            System.out.println();
            out.close();
            in.close();
            
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch(ClassNotFoundException e){
            
        }catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            
        }
    }
}
class Myfoo extends MyfooFather implements Serializable{
    private static final long serialVersionUID = 1L;
    int Higth ;
    int Width ;
    public int getHigth() {
        return Higth;
    }
    public void setHigth(int higth) {
        Higth = higth;
    }
    public int getWidth() {
        return Width;
    }
    public void setWidth(int width) {
        Width = width;
    }
}
class MyfooFather{
    
    int age = 30;
}


1、序列化是干什么的?
簡單說就是為了保存在內(nèi)存中的各種對象的狀態(tài)(也就是實(shí)例變量,不是方法),并且可以把保存的對象狀態(tài)再讀出來。雖然你可以用你自己的各種各樣的方法來保存object states,但是Java給你提供一種應(yīng)該比你自己好的保存對象狀態(tài)的機(jī)制,那就是序列化。

2、什么情況下需要序列化
a)當(dāng)你想把的內(nèi)存中的對象狀態(tài)保存到一個文件中或者數(shù)據(jù)庫中時候;
b)當(dāng)你想用套接字在網(wǎng)絡(luò)上傳送對象的時候;
c)當(dāng)你想通過RMI傳輸對象的時候;

Myfoo myfoo = new Myfoo();
myfoo.setHigth(27);
myfoo.setWidth(12);
當(dāng) 通過下面的代碼序列化之后,MyFoo對象中的width和Height實(shí)例變量的值(37,70)都被保存到foo.txt文件中,這樣以后又可以把它 從文件中讀出來,重新在堆中創(chuàng)建原來的對象。當(dāng)然保存時候不僅僅是保存對象的實(shí)例變量的值,JVM還要保存一些小量信息,比如類的類型等以便恢復(fù)原來的對 象。

備注: 當(dāng)子類實(shí)現(xiàn)序列化時 父類自動序列化

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65759.html

相關(guān)文章

  • 小伙子,你真的搞懂 transient 關(guān)鍵字了嗎?

    摘要:由以上結(jié)果分析可知,靜態(tài)變量不能被序列化,示例讀取出來的是在內(nèi)存中存儲的值。關(guān)鍵字總結(jié)修飾的變量不能被序列化只作用于實(shí)現(xiàn)接口只能用來修飾普通成員變量字段不管有沒有修飾,靜態(tài)變量都不能被序列化好了,棧長花了半天時間,終于整理完了。 先解釋下什么是序列化 我們的對象并不只是存在內(nèi)存中,還需要傳輸網(wǎng)絡(luò),或者保存起來下次再加載出來用,所以需要Java序列化技術(shù)。 Java序列化技術(shù)正是將對象轉(zhuǎn)...

    curlyCheng 評論0 收藏0
  • Java 對象列化

    摘要:對象序列化對象序列化機(jī)制允許把內(nèi)存中的對象轉(zhuǎn)換成與平臺無關(guān)的二進(jìn)制流,從而可以保存到磁盤或者進(jìn)行網(wǎng)絡(luò)傳輸,其它程序獲得這個二進(jìn)制流后可以將其恢復(fù)成原來的對象。 對象序列化 對象序列化機(jī)制允許把內(nèi)存中的Java對象轉(zhuǎn)換成與平臺無關(guān)的二進(jìn)制流,從而可以保存到磁盤或者進(jìn)行網(wǎng)絡(luò)傳輸,其它程序獲得這個二進(jìn)制流后可以將其恢復(fù)成原來的Java對象。 序列化機(jī)制可以使對象可以脫離程序的運(yùn)行而對立存在 ...

    tianyu 評論0 收藏0
  • Java開發(fā)中對象的列化與反列化

    摘要:在中,對象的序列化與反序列化被廣泛應(yīng)用到遠(yuǎn)程方法調(diào)用及網(wǎng)絡(luò)傳輸中。相關(guān)接口及類為了方便開發(fā)人員將對象進(jìn)行序列化及反序列化提供了一套方便的來支持。未實(shí)現(xiàn)此接口的類將無法使其任何狀態(tài)序列化或反序列化。 序列化與反序列化 序列化 (Serialization)是將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲或傳輸?shù)男问降倪^程。一般將一個對象存儲至一個儲存媒介,例如檔案或是記億體緩沖等。在網(wǎng)絡(luò)傳輸過程中,可以...

    fox_soyoung 評論0 收藏0
  • Java列化

    摘要:的序列化是將一個對象表示成字節(jié)序列,該字節(jié)序列包括了對象的數(shù)據(jù),有關(guān)對象的類型信息和存儲在對象中的數(shù)據(jù)類型。任何實(shí)現(xiàn)了接口的類都可以被序列化。一旦對象被序列化或者重新裝配,就會分別調(diào)用那兩個方法。 Java序列化 1. 什么是序列化? 序列化是將一個對象的狀態(tài),各屬性的值序列化保存起來,然后在合適的時候通過反序列化獲得。 Java的序列化是將一個對象表示成字節(jié)序列,該字節(jié)序列包括了對象...

    lbool 評論0 收藏0
  • 淺談Java列化

    摘要:的序列化是將一個對象表示成字節(jié)序列,該字節(jié)序列包括了對象的數(shù)據(jù),有關(guān)對象的類型信息和存儲在對象中的數(shù)據(jù)類型。這個是根據(jù)類名接口名成員方法及屬性等來生成一個位的哈希字段,因?yàn)樵黾恿俗侄?,因此生成的不一樣了? Java序列化 什么是序列化? 序列化是將一個對象的狀態(tài),各屬性的值序列化保存起來,然后在合適的時候通過反序列化獲得。 Java的序列化是將一個對象表示成字節(jié)序列,該字節(jié)序列包括了對...

    winterdawn 評論0 收藏0
  • java列化和反列化說起

    摘要:從的序列化和反序列化說起序列化是將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲或傳輸?shù)男问降倪^程,而相反的過程就稱為反序列化。當(dāng)使用接口來進(jìn)行序列化與反序列化的時候需要開發(fā)人員重寫與方法。 從java的序列化和反序列化說起 序列化 (Serialization)是將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲或傳輸?shù)男问降倪^程,而相反的過程就稱為反序列化。 在java中允許我們創(chuàng)建可復(fù)用的對象,但是這些對象僅僅存在j...

    whlong 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<