<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Java 序列化概念和示例 > 原文: [https://javabeginnerstutorial.com/core-java-tutorial/java-serialization-concept-example/](https://javabeginnerstutorial.com/core-java-tutorial/java-serialization-concept-example/) 在這里,我將學習和教你什么是 Java 的序列化以及如何編寫相同的代碼。 ## 什么是序列化 Java 序列化是一個過程,其中對象的當前狀態將保存在字節流中。 字節流是平臺無關的,因此一旦在一個系統中創建了對象,便可以在其他平臺上反序列化。 ## 序列化有什么用 如上所述,序列化會將對象狀態轉換為字節流。 該字節流可用于其他目的。 * 寫入磁盤 * 存儲在內存中 * 通過網絡將字節流發送到其他平臺 * 將字節流保存在 DB 中(作為 BLOB) ## Java 中的序列化和反序列化 現在我們知道什么是序列化了。 但是我們需要了解如何用 Java 實現它以及它如何工作。 Java 已經提供了開箱即用的方式(`java.io.Serializable`接口)來序列化對象。 如果要序列化任何類,則該類需要實現給定的接口。 **注**:`Serializable`接口是標記接口。 因此,`Serializable`接口中沒有任何方法。 ## Java 類序列化代碼 `Employee.java` ```java package com.jbt; import java.io.Serializable; public class Employee implements Serializable { public String firstName; public String lastName; private static final long serialVersionUID = 5462223600l; } ``` `SerializaitonClass.java` ```java package com.jbt; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; public class SerializaitonClass { public static void main(String[] args) { Employee emp = new Employee(); emp.firstName = "Vivekanand"; emp.lastName = "Gautam"; try { FileOutputStream fileOut = new FileOutputStream("./employee.txt"); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(emp); out.close(); fileOut.close(); System.out.printf("Serialized data is saved in ./employee.txt file"); } catch (IOException i) { i.printStackTrace(); } } } ``` `DeserializationClass.java` ```java package com.jbt; import java.io.*; public class DeserializationClass { public static void main(String[] args) { Employee emp = null; try { FileInputStream fileIn = new FileInputStream("./employee.txt"); ObjectInputStream in = new ObjectInputStream(fileIn); emp = (Employee) in.readObject(); in.close(); fileIn.close(); } catch (IOException i) { i.printStackTrace(); return; } catch (ClassNotFoundException c) { System.out.println("Employee class not found"); c.printStackTrace(); return; } System.out.println("Deserializing Employee..."); System.out.println("First Name of Employee: " + emp.firstName); System.out.println("Last Name of Employee: " + emp.lastName); } } ``` 首先,運行“`SerializaitonClass`”,您將創建“`employee.txt`”文件。 第二次運行“`DeserializationClass`”,Java 將反序列化該類,并在控制臺中顯示該值。 輸出將是 ```java Deserializing Employee... First Name of Employee: Vivekanand Last Name of Employee: Gautam ``` ### 項目要點 * **序列化**接口需要使對象*序列化*。 * 瞬態[實例變量](https://javabeginnerstutorial.com/core-java-tutorial/instance-variable-java/)并未以對象狀態序列化。 * 如果超類實現了`Serializable`,則子類也可以自動進行`Serializable`。 * 如果無法對超類進行序列化,則在對子類進行反序列化時,將調用超類的默認[構造器](https://javabeginnerstutorial.com/core-java-tutorial/constructors-in-java/)。 因此,所有變量將獲得默認值,引用將為`null`。 在下一篇文章中,我們將討論[瞬態變量](https://javabeginnerstutorial.com/core-java-tutorial/java-serialization-concept-example-part-ii/ "Java serialization concept and Example Part II")的使用。 * **序列化**接口需要使對象*序列化*。 * 瞬態[實例變量](https://javabeginnerstutorial.com/core-java-tutorial/instance-variable-java/)并未以對象狀態序列化。 * 如果超類實現了`Serializable`,則子類也可以自動進行`Serializable`。 * 如果無法對超類進行序列化,則在對子類進行反序列化時,將調用超類的默認[構造器](https://javabeginnerstutorial.com/core-java-tutorial/constructors-in-java/)。 因此,所有變量將獲得默認值,引用將為`null`。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看