在存儲的時候,把字節轉換成對象教序列化的使用。如果想把字節換回來,就要運用到反序列化的概念。IO流中的序列化用于處理字節序列的問題,需要我們先對IO流序列化的概念、圖解、使用場景進行了解,在了解基本概念后,我們進一步學習java IO流序列化的構造方法。
1.概念
Java 提供了一種對象序列化的機制,用一個字節序列可以表示一個對象,該字節序列包含該對象的數據、對象的類型和對象中存儲的屬性等信息。字節序列寫出到文件之后,相當于文件中 持久保存了一個對象的信息。反之,該字節序列還可以從文件中讀取回來,重構對象,對它進行 反序列化。對象的數據、對象的類型和對象中存儲的數據信息,都可以用來在內存中創建對象。
2.圖解
3.使用場景
(1)所有需要網絡傳輸的對象都需要實現序列化接口,通過建議所有的javaBean都實現Serializable接口。
(2)對象的類名、實例變量(包括基本類型,數組,對其他對象的引用)都會被序列化;方法、類變量、transient實例變量都不會被序列化。
(3)如果想讓某個變量不被序列化,使用transient修飾。序列化對象的引用類型成員變量,也必須是可序列化的,否則,會報錯。
(4)反序列化時必須有序列化對象的class文件。
(5)當通過文件、網絡來讀取序列化后的對象時,必須按照實際寫入的順序讀取。
(6)單例類序列化,需要重寫readResolve()方法;否則會破壞單例原則。
(7)同一對象序列化多次,只有第一次序列化為二進制流,以后都只是保存序列化編號,不會重復序列化。
(8)建議所有可序列化的類加上serialVersionUID 版本號,方便項目升級。
4.構造方法
以上就是java IO流序列化的概念學習,可以用于字符與對象的轉換,在用法上有序列化和反序列化兩種,想要學習的可以在課后找資料了解。更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的好程序員班,高品質課程助力你實現java程序員夢想。