JAVA内存存储数据的位置
生活随笔
收集整理的這篇文章主要介紹了
JAVA内存存储数据的位置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有5個地方可以存儲數據
1.寄存器
因為寄存器位于不同于其他存儲區的地方—處理器內部,所以這是最快的存儲區。正因為它的大小極其有限,所以它會按照需求分配,在程序中,你不能對它進行任何操作,甚至感受不到它的存在。
2.堆棧
堆棧位于RAM(隨機訪問存儲器)中,通過堆棧指針來處理內存,堆棧指針向下移動,則分配新的內存,如果向上移動,則釋放內存,這是一種快速有效的分配存儲方式。
JAVA系統必須知道它們的確切生命周期,以便上下移動堆棧指針。所以這一個約束會限制程序的靈活性。所以一般會把對象引用放在堆棧,但是JAVA對象不會放在這里。
3.堆
位于RAM區,是一種通用的內存池,用于存放所有的JAVA對象,堆不同于堆棧的好處是:編譯器不關心存儲的數據會存活多長時間,你只需要new一個對象,會自動在堆中儲存分配,不需要時自動銷毀。但是由于動態分配內存都是在程序運行時進行的操作,所以犧牲了一定的時間效率。
4.常量儲存
常量值會通常放在程序內部,不可改變,保證其封裝性,通常他會被放在jvm的方法區中。
5.非RAM存儲
一種是流,用于與設備和另一臺機器的交互。
還有一種是持久化對象,放在磁盤上,不需要時將這種對象以某種方式轉化為磁盤上的事物,需要用試再轉化成對象。例如JDBC,Hibernete都提供了這樣的支持,它們還進一步擴展,實現了更佳復雜的功能
總結
以上是生活随笔為你收集整理的JAVA内存存储数据的位置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebService和Netty的区别
- 下一篇: java数组与C++数组的不同之处