JAVA存儲分類

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

2:堆棧位於通用RAM(隨機訪問存儲器))中,但通過堆棧指針可以從處理器那裏獲得直速有效的分配存儲方法,僅次於寄存器。創建程序時,java系統必須知道存儲在堆棧內所有的項的確切生命週期,以便上下移動堆棧指針。這一約束限制了程序的靈活性,所以雖然某些java數據存府於堆棧中——物別是對象引用,但Java對象並不存儲於其中。:

3:一種通用的內存池(也位於RAM區),用於存放所有的Java對象。堆不同於堆不同於堆棧的好處是:編譯器不需要知道存儲的數據在堆裏面存活多長時間性。因此,在堆裏面分配存儲有很大的靈活性。當需要一個對象時,只需要new寫一行簡單的代碼,當執行這行代碼時,會自動在堆裏進行存儲分配。當然,爲這種靈活性必須要付出相應在的代價:用堆是進行存儲分配需要更多的時間。

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

5:非RAM存儲如果數據完全存活於程序之外,那麼它可以不受程序的任何控制,在程序沒有運行時也可以存在。其中兩個基本的例子是流對象和持久化在流對象中,對象轉化成字節流,通常被髮送給另一個機器。在“持久化對象”中,對象被存放在磁盤上,因此,即使程序終止,它們仍可以保持自己的狀態。這種存儲方式的技巧在於:把對象轉化成可以存放在其它媒介上的事物,在需要時,可以恢復成常規的、基於常規的、基於RAM的對象。Java提供了對輕量級持久化的支持,而諸如JDBC和Hibernate這樣的機制提供了更加複雜的對在數據庫中存儲和讀取對象信息的支持。 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章