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