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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中数据是如何存储

發布時間:2023/12/4 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中数据是如何存储 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

一:JAVA中數據的存儲方式

①:寄存器:這是最快的存儲區,因為它位于不同于其他存儲區的地方———處理器內部。但是寄存器的數量極其有限,所以寄存器根據需求進行分配。你不能直接控制,也不能在程序中感覺到寄存器存在的任何跡象。

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

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

④:常量存儲:常量值通常直接存放在程序的內部,這樣做是安全的,因為他們永遠不會被改變,有時,嵌入到系統中,常量本身會和其他部分隔離開,所以在這種情況下,可以選擇存在ROM(只讀存儲器)中。

⑤非RAM存儲:如果數據完全存活在程序之外,那么他可以不受程序的任何控制,在程序沒有運行時也可以存在。其中兩個基本的例子是流對象和持久化對象。在流對象中,對象轉化成字節流,通常被發送到另外一臺機器上。在持久化對象中,對方被放在磁盤上,因此,即使程序終止,他們仍可以保持自己的狀態。這種存儲方式在于:把對象轉化成可以存放早其他媒介上的事物,在需要時,可恢復成常規的,基于RAM對象。Java提供了對輕量級持久化的支持。

?

1.存儲數據類型:棧內存中存放局部變量(基本數據類型和對象引用),而堆內存用于存放對象(實體)。

2.存儲速度:就存儲速度而言,棧內存的存儲分配與清理速度更快于堆,并且棧內存的存儲速度僅次于直接位于處理器當中的寄存器。

3.靈活性:就靈活性而言,由于棧內存與堆內存存儲機制的不同,堆內存靈活性更優于棧內存。

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

— 棧內存被要求存放在其中的數據的大小、生命周期必須是已經確定的;

— 堆內存可以被虛擬機動態的分配內存大小,無需事先告訴編譯器的數據的大小、生命周期等相關信息。

轉載于:https://my.oschina.net/mujourney/blog/681264

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。