日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java中数据是如何存储

發(fā)布時(shí)間:2023/12/4 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中数据是如何存储 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

一:JAVA中數(shù)據(jù)的存儲(chǔ)方式

①:寄存器:這是最快的存儲(chǔ)區(qū),因?yàn)樗挥诓煌谄渌鎯?chǔ)區(qū)的地方———處理器內(nèi)部。但是寄存器的數(shù)量極其有限,所以寄存器根據(jù)需求進(jìn)行分配。你不能直接控制,也不能在程序中感覺到寄存器存在的任何跡象。

②:棧:位于RAM(內(nèi)存)中 ,但通過指針可以從處理器哪里獲得直接支持,棧的指針上移,釋放內(nèi)存。下移重新分配內(nèi)存。這是一個(gè)快速有效的分配方法,僅次于寄存器。創(chuàng)建程序時(shí),Java系統(tǒng)必須知道存儲(chǔ)在棧內(nèi)所有項(xiàng)的確切生命周期。以便于上下移動(dòng)棧的指針。這一約束限制了程序的靈活性,所以雖然某些Java數(shù)據(jù)存儲(chǔ)于棧中——特別是對象的引用,但是Java對象并不存在于棧中。

③:堆:一種通用的內(nèi)存池(也位于RAM區(qū)),用于存放所有的Java對象。堆不同于棧的好處是:編譯器不需要知道存儲(chǔ)的數(shù)據(jù)在堆里面活多長的時(shí)間。因此,在堆里分配存儲(chǔ)有很大的靈活性,當(dāng)需要一個(gè)對象時(shí),只需要new一個(gè)對象,當(dāng)執(zhí)行這個(gè)代碼時(shí),會(huì)自動(dòng)在堆里面進(jìn)行存儲(chǔ)分配。當(dāng)然,任何事情都有兩面性,用堆進(jìn)行存儲(chǔ)分配和清理可能比用棧存儲(chǔ)分配需要更多的時(shí)間。

④:常量存儲(chǔ):常量值通常直接存放在程序的內(nèi)部,這樣做是安全的,因?yàn)樗麄冇肋h(yuǎn)不會(huì)被改變,有時(shí),嵌入到系統(tǒng)中,常量本身會(huì)和其他部分隔離開,所以在這種情況下,可以選擇存在ROM(只讀存儲(chǔ)器)中。

⑤非RAM存儲(chǔ):如果數(shù)據(jù)完全存活在程序之外,那么他可以不受程序的任何控制,在程序沒有運(yùn)行時(shí)也可以存在。其中兩個(gè)基本的例子是流對象和持久化對象。在流對象中,對象轉(zhuǎn)化成字節(jié)流,通常被發(fā)送到另外一臺機(jī)器上。在持久化對象中,對方被放在磁盤上,因此,即使程序終止,他們?nèi)钥梢员3肿约旱臓顟B(tài)。這種存儲(chǔ)方式在于:把對象轉(zhuǎn)化成可以存放早其他媒介上的事物,在需要時(shí),可恢復(fù)成常規(guī)的,基于RAM對象。Java提供了對輕量級持久化的支持。

?

1.存儲(chǔ)數(shù)據(jù)類型:棧內(nèi)存中存放局部變量(基本數(shù)據(jù)類型和對象引用),而堆內(nèi)存用于存放對象(實(shí)體)。

2.存儲(chǔ)速度:就存儲(chǔ)速度而言,棧內(nèi)存的存儲(chǔ)分配與清理速度更快于堆,并且棧內(nèi)存的存儲(chǔ)速度僅次于直接位于處理器當(dāng)中的寄存器。

3.靈活性:就靈活性而言,由于棧內(nèi)存與堆內(nèi)存存儲(chǔ)機(jī)制的不同,堆內(nèi)存靈活性更優(yōu)于棧內(nèi)存。

這樣兩種存儲(chǔ)方式的不同之處,也是由于它們自身的存儲(chǔ)機(jī)制所造成的。所以為了理解它們,首先我們應(yīng)該弄清楚它們分別的存儲(chǔ)原理和機(jī)制,在Java中:

— 棧內(nèi)存被要求存放在其中的數(shù)據(jù)的大小、生命周期必須是已經(jīng)確定的;

— 堆內(nèi)存可以被虛擬機(jī)動(dòng)態(tài)的分配內(nèi)存大小,無需事先告訴編譯器的數(shù)據(jù)的大小、生命周期等相關(guān)信息。

轉(zhuǎn)載于:https://my.oschina.net/mujourney/blog/681264

總結(jié)

以上是生活随笔為你收集整理的Java中数据是如何存储的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。