序列化是用來處理物件流的機制。 實際可以對流化後的物件進行讀寫操作,也可將流化後的物件傳輸於網路之間。
序列化是為了解決在物件流進行讀寫操作時所引發的問題。序列化的實作:
將需要被序列化的類別實作Serializable介面(標記介面),該介面沒有需要實作的方法,implements Serializable只是為了標註該物件是可被序列化的,然後使用一個輸出流(如:FileOutputStream)來建構一個ObjectOutputStream(物件流)物件;接著,使用ObjectOutputStream物件的writeObject(Object obj)方法就可以將參數為obj的物件寫出(即保存其狀態),要恢復的話則用輸入流。
什麼時候使用序列化呢?一:物件序列化可以實現分散式物件。
主要應用程式例如:RMI(即遠端呼叫Remote Method Invocation)要利用物件序列化運作遠端主機上的服務,就像在本機上執行物件時一樣。
二:java物件序列化不僅保留一個物件的數據,而且遞歸保存物件引用的每個物件的數據。可以將整個物件層次寫入一個位元組流中,可以保存在檔案中或在網路連線上傳遞。利用物件序列化可以進行物件的"深複製",即複製物件本身及引用的物件本身。序列化一個物件可能得到整個物件序列。
三:序列化可以將記憶體中的類別寫入檔案或資料庫中。例如:將某個類別序列化後存為文件,下次讀取時只需將文件中的資料反序列化就可以將原先的類別還原到記憶體中。 也可以將類別序列化為串流資料進行傳輸。總的來說就是將一個已經實例化的類別轉成文件存儲,下次需要實例化的時候只要反序列化即可將類別實例化到內存中並保留序列化時類別中的所有變數和狀態。
四: 物件、檔案、數據,有許多不同的格式,很難統一傳輸和保存。序列化以後就都是位元組流了,無論原來是什麼東西,都能變成一樣的東西,就可以進行通用的格式傳輸或保存,傳輸結束以後,要再次使用,就進行反序列化還原,這樣對象還是對象,文件還是文件
因為JAVA中要將對象序列化為 流的形式 進行傳輸。以上是java為什麼序列化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

禪工作室 13.0.1
強大的PHP整合開發環境