java對象持久化保存的方法詳解
java對象持久化
通常有三種可選擇的方法,如下:
- 使用文件
- 使用序列化與反序列化
- 使用數(shù)據(jù)庫
使用文件
將所需保存的對象內(nèi)容或數(shù)據(jù)內(nèi)容以文件的形式進(jìn)行存儲,在使用時(shí)直接讀取文件并且解析。
優(yōu)點(diǎn) | ①幾乎能保存任何形式數(shù)據(jù); ②實(shí)現(xiàn)簡單。 |
缺點(diǎn) | 讀寫文件的效率較低,不適用于數(shù)據(jù)量比較大的情況。 |
應(yīng)用場景 | ①讀寫速率要求不高、數(shù)據(jù)量不大 ②數(shù)據(jù)格式?jīng)]有嚴(yán)格限定。 |
推薦使用形式 | 將對象轉(zhuǎn)換為json字符串進(jìn)行存取,java有json格式數(shù)據(jù)的解析函數(shù),十分方便。 |
使用序列化與反序列化
在不使用數(shù)據(jù)庫的情況下,比較方便的保存和加載少量的數(shù)據(jù)。數(shù)據(jù)以XXX.ser文件保存。注意:XXX.ser 文件所在的路徑必須已經(jīng)存在,否則會出現(xiàn)“找不到”或“不存在”問題。XXX.ser 文件能夠自動生成。
優(yōu)點(diǎn) | ①能夠保存所有對象數(shù)據(jù),且對私有數(shù)據(jù)可控;②實(shí)現(xiàn)簡單;③讀寫數(shù)據(jù)結(jié)構(gòu)嚴(yán)謹(jǐn),解析方便。 |
缺點(diǎn) | 不適用數(shù)據(jù)量比較大的情況。 |
應(yīng)用場景 | 讀寫速率要求不高、數(shù)據(jù)量不大的情況。 |
使用數(shù)據(jù)庫
根據(jù)數(shù)據(jù)具體類型,選擇合適的關(guān)系型或者非關(guān)系型數(shù)據(jù)庫。
優(yōu)點(diǎn) | ①適用于數(shù)據(jù)量比較大的情況 ②讀寫速度快;數(shù)據(jù)結(jié)構(gòu)嚴(yán)謹(jǐn)。 |
缺點(diǎn) | ①只能保存數(shù)據(jù)庫接受的數(shù)據(jù) ②比前兩者實(shí)現(xiàn)稍顯復(fù)雜。 |
應(yīng)用場景 | 讀寫速率要求高、數(shù)據(jù)量大且數(shù)據(jù)結(jié)構(gòu)嚴(yán)謹(jǐn)?shù)那闆r。 |
推薦數(shù)據(jù)庫 | 如果選用關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)量低于50GB的小型數(shù)據(jù)庫應(yīng)用, 推薦使用JDK自帶的Apache Derby的內(nèi)嵌開發(fā)模式。Derby非常小巧,核心部分derby.jar只有2M,相比于其他數(shù)據(jù)庫用起來簡便。 |
到此這篇關(guān)于java對象持久化保存的方法詳解的文章就介紹到這了,更多相關(guān)java對象持久化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 打印一字符串,并在main()方法內(nèi)調(diào)用它
編寫一個(gè)方法(名字自定,但要符合Java編碼規(guī)范),方法內(nèi)打印一字符串,并在main()方法內(nèi)調(diào)用它。2017-02-02通過實(shí)例解析Java類初始化和實(shí)例初始化
這篇文章主要介紹了通過實(shí)例解析Java類初始化和實(shí)例初始化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Java基于直方圖應(yīng)用的相似圖片識別實(shí)例
這篇文章主要介紹了Java基于直方圖應(yīng)用的相似圖片識別實(shí)例,是非常實(shí)用的技巧,多見于圖形里游戲中,需要的朋友可以參考下2014-09-09簡單了解Java synchronized關(guān)鍵字同步
這篇文章主要介紹了簡單了解Java synchronized關(guān)鍵字同步,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09mybatis返回list<Integer>時(shí)resultType寫Integer問題
這篇文章主要介紹了mybatis返回list<Integer>時(shí)resultType寫Integer問題,具有很好的參考價(jià)值,希望對大家有所幫助,2023-12-12Spring創(chuàng)建bean實(shí)例的幾種方式分享
這篇文章主要介紹了Spring創(chuàng)建bean實(shí)例的幾種方式分享,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07基于java springboot + mybatis實(shí)現(xiàn)電影售票管理系統(tǒng)
這篇文章主要介紹了基于java springboot + mybatis實(shí)現(xiàn)的完整電影售票管理系統(tǒng)基于java springboot + mybatis,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08