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) | 讀寫文件的效率較低,不適用于數(shù)據(jù)量比較大的情況。 |
| 應(yīng)用場(chǎng)景 | ①讀寫速率要求不高、數(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)“找不到”或“不存在”問題。XXX.ser 文件能夠自動(dòng)生成。
| 優(yōu)點(diǎn) | ①能夠保存所有對(duì)象數(shù)據(jù),且對(duì)私有數(shù)據(jù)可控;②實(shí)現(xiàn)簡(jiǎn)單;③讀寫數(shù)據(jù)結(jié)構(gòu)嚴(yán)謹(jǐn),解析方便。 |
| 缺點(diǎn) | 不適用數(shù)據(jù)量比較大的情況。 |
| 應(yīng)用場(chǎng)景 | 讀寫速率要求不高、數(shù)據(jù)量不大的情況。 |
使用數(shù)據(jù)庫(kù)
根據(jù)數(shù)據(jù)具體類型,選擇合適的關(guān)系型或者非關(guān)系型數(shù)據(jù)庫(kù)。
| 優(yōu)點(diǎn) | ①適用于數(shù)據(jù)量比較大的情況 ②讀寫速度快;數(shù)據(jù)結(jié)構(gòu)嚴(yán)謹(jǐn)。 |
| 缺點(diǎn) | ①只能保存數(shù)據(jù)庫(kù)接受的數(shù)據(jù) ②比前兩者實(shí)現(xiàn)稍顯復(fù)雜。 |
| 應(yīng)用場(chǎng)景 | 讀寫速率要求高、數(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)嵌開發(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語(yǔ)言中4種內(nèi)部類的超詳細(xì)講解
這篇文章主要給大家介紹了關(guān)于Java語(yǔ)言中4種內(nèi)部類的超詳細(xì)講解,內(nèi)部類可以分為:實(shí)例內(nèi)部類、靜態(tài)內(nèi)部類和成員內(nèi)部類,每種內(nèi)部類都有它特定的一些特點(diǎn),文中介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
Java多線程編程之使用Exchanger數(shù)據(jù)交換實(shí)例
這篇文章主要介紹了Java多線程編程之使用Exchanger數(shù)據(jù)交換實(shí)例,本文直接給出實(shí)例代碼,需要的朋友可以參考下2015-05-05
Java實(shí)現(xiàn)音頻轉(zhuǎn)文本的示例代碼(語(yǔ)音識(shí)別)
Java中實(shí)現(xiàn)音頻轉(zhuǎn)文本通常涉及使用專門的語(yǔ)音識(shí)別服務(wù),本文主要介紹了Java實(shí)現(xiàn)音頻轉(zhuǎn)文本的示例代碼(語(yǔ)音識(shí)別),具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
關(guān)于dubbo的RPC和RESTful性能及對(duì)比
這篇文章主要介紹了關(guān)于dubbo的RPC和RESTful性能及對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
MyBatis動(dòng)態(tài)SQL之<choose><when><o(jì)therwise>標(biāo)簽的使用
MyBatis中動(dòng)態(tài)語(yǔ)句choose-when-otherwise 類似于Java中的switch-case-default語(yǔ)句,本文就來(lái)介紹一下MyBatis動(dòng)態(tài)SQL之<choose><when><o(jì)therwise>標(biāo)簽的使用,感興趣的可以了解一下2023-09-09
Android studio按鈕點(diǎn)擊頁(yè)面跳轉(zhuǎn)詳細(xì)步驟
在Android應(yīng)用程序中,頁(yè)面跳轉(zhuǎn)是非常常見的操作,下面這篇文章主要給大家介紹了關(guān)于Android studio按鈕點(diǎn)擊頁(yè)面跳轉(zhuǎn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06

