Java序列化技術即將被廢除!!!

Java技術棧發表於2018-05-30

我們的物件並不只是存在記憶體中,還需要傳輸網路,或者儲存起來下次再載入出來用,所以需要Java序列化技術。Java序列化技術正是將物件轉變成一串由二進位制位元組組成的陣列,可以通過將二進位制資料儲存到磁碟或者傳輸網路,磁碟或者網路接收者可以在物件的屬類的模板上來反序列化類的物件,達到物件持久化的目的。

如果你還不熟悉 Java 序列化技術,請詳細閱讀《關於Java序列化你應該知道的一切》這篇文章。

目前 Oracle 公司計劃廢除 Java 中的古董–序列化技術,因為它帶來了許多嚴重的安全問題(如序列化儲存安全、反序列化安全、傳輸安全等),據統計,至少有3分之1的漏洞是序列化帶來的,這也是 1997 年誕生序列化技術的一個巨大錯誤。

image

如圖所示,序列化技術現在在 Java 應用中無處不在,特別是現在的持久化框架和分散式技術中,都需要利用序列化來傳輸物件,如:Hibernate、Mybatis、Java RMI、Dubbo等,即物件要儲存或者傳輸都不可避免要用到序列化技術,所以刪除序列化技術將是一個長期的計劃。

據悉,在未來的 Java 版本中,將會有一個迷你序列化框架來替代現在的古董序列化技術。這個新框架將會支援開發者值入序列化引擎,並支援如 JSON、XML 格式,以一個更安全的方式來序列化物件。

序列化技術自 Java 誕生到現在已經發展了 20 來年了,但並未有什麼改進和突破。也因為其簡單易用的方式,給 Java 應用程式帶來了許多安全漏洞。現在 Oracle 版本釋出越來越快,讓我們在新的版本中能看到更多序列化技術演進吧!


Java 序列化重生,Java 會永垂不朽!這次感謝圖靈教育出版社贊助 8 本價值 84 元的 《明解Java》 免費送給我們的粉絲,想深入學習 Java 的穩住了,我們一定能贏。

image

本書圖文並茂,示例豐富,通過284幅圖表和258段程式碼,由淺入深地解說了從Java的基礎知識到物件導向程式設計的內容,涉及變數、分支、迴圈、基本資料型別和運算、陣列、方法、類、包、介面、字元和字串、異常處理等。書中出現的程式包括猜數遊戲、猜拳遊戲、心算訓練等,能夠讓讀者愉快地學習。

本次送書規則如下。

1、如果讓你來設計一個安全的序列化技術,你會怎麼做?歡迎留言!我們將選出 4 名精彩留言使用者送書,留言牆數量有限,與話題無關且隨意留言的不會被精選。

2、還有 4 本從Java技術棧知識星球中抽獎送出,有想深入交流學習 Java 技術的朋友可以加入Java技術棧星球。天下沒有免費的午餐,機會都是留給有準備願意付出的人的。

截止時間:2018/06/03 18:00

本活動需要在我們的微信公眾號對應文章中參與。

image


相關文章