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

来源:https://www.cnblogs.com/javastack/archive/2018/05/30/9106961.html
-Advertisement-
Play Games

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


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

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

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

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

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

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


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

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

本次送書規則如下。

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

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

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

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <style type="text/css"> figure{ float: left;}.test1{ border-radius: 0px; height: 200px; width: 200px; overflow: hidden; ransition-property: border-rad ...
  • JavaScript具有強大的垃圾回收功能,執行環境負責管理代碼執行過程中使用的記憶體。其基本原理是:在執行環境中找出那些不再繼續使用的變數,然後釋放其占用的記憶體。垃圾收集器會按照系統編寫號的時間間隔,周期性地執行操作。 局部變數的生命周期 一個函數中局部變數正常生命周期,局部變數只在函數執行的過程中 ...
  • 上圖不上種,菊花萬人捅: loading.js: loading.css: 在main.js裡面 : 這樣就可以直接在組件裡面手動調用啦! 調用方法: this.$loading.show(), this.$loading.hide() 因為這個項目暫時規模很小,就只有註冊功能,我直接把調用寫在ax ...
  • 採用Flex佈局的元素,被稱為Flex容器(flex container),簡稱"容器"。其所有子元素自動成為容器成員,成為Flex項目(Flex item),簡稱"項目" Flex-direction調整主軸方向(預設為水平方向)包括row、column、row-reverse、column-re... ...
  • 回頭再詳細完善 ...
  • 簡介: 為其他對象提供一種代理以控制對這個對象的訪問。(在訪問真實對象時,引入一定程度的間接性,因為這種間接性可以附加多種用途)【結構型模式】 結構圖: 優點: 缺點: 應用場景: 註意事項: 示例: 1.結構類圖的實現: ISubject類,定義了RealSubject和Proxy的公用介面。在任 ...
  • 領域驅動設計(2)怎麼使用溝通 廢話 溝通的重要性:溝通很重要,不論在生活中,還是工作中溝通處理不好,我想為人處事這塊肯定有問題.LZ接觸社會比較早,做過焊工、銷售、跑過業務...,一路走來在溝通上同樣的也吃過很多的虧,受了不少的不會溝通的害處。我在做業務的時候常常用一句話告誡自己“一句話能死,一句 ...
  • 簡介: 動態的給一個對象添加一些額外的職責,就增加功能來說,裝飾模式比生產子類更加靈活——《大話設計模式》。【結構型模式】 結構圖: 優點: 缺點: 應用場景: 註意事項: 示例: 1.結構類的實現: Component定義一個對象介面,可以給這些對象動態的添加職責。 ConcreteCompone ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...