Java中存儲數據的地方
作者:Flyingis
在Java程序運行時有6個地方可以存儲數據:
1.寄存器:這是最快的存儲區,因為它位于不同于其他存儲區的地方——處理器內部。
2.堆棧:位于通用RAM中,但通過“堆棧指針”可以從處理器那里獲得直接支持。
3.堆:一種通用的內存池(也位于RAM區),用于存放所有的Java對象。
4.靜態存儲:這里的“靜態”指的是“在固定的位置”(盡管也在RAM里),存放程序運行時一直存在的數據。
5.常量存儲:常量值通常直接存放在程序代碼內部,這樣做是安全的,因為它們永遠不會被改變。
6.非RAM存儲:如果數據完全存活于程序之外,那么它可以不受程序的任何控制,在程序中沒有運行時也可以存在。
在Java程序設計時經常用到一系列類型,比如char/byte/int/long/float等等,我們有兩種方式創建方式,例如創建一個String類型的引用并初始化為“Java”:
String s = "Java";
或 String s = new String("Java") ;
采用第一種方式創建了一個并非是“引用”的變量,它的值為“Java”,置于堆棧之中。而第二種方式創建了一個對象,它被存儲在堆里,不及在堆棧中高效。因此,當我們需要創建一個很小的、簡單的變量時,采用第一種方式更好。這是Java數據存儲的一個細節。
在Java程序運行時有6個地方可以存儲數據:
1.寄存器:這是最快的存儲區,因為它位于不同于其他存儲區的地方——處理器內部。
2.堆棧:位于通用RAM中,但通過“堆棧指針”可以從處理器那里獲得直接支持。
3.堆:一種通用的內存池(也位于RAM區),用于存放所有的Java對象。
4.靜態存儲:這里的“靜態”指的是“在固定的位置”(盡管也在RAM里),存放程序運行時一直存在的數據。
5.常量存儲:常量值通常直接存放在程序代碼內部,這樣做是安全的,因為它們永遠不會被改變。
6.非RAM存儲:如果數據完全存活于程序之外,那么它可以不受程序的任何控制,在程序中沒有運行時也可以存在。
在Java程序設計時經常用到一系列類型,比如char/byte/int/long/float等等,我們有兩種方式創建方式,例如創建一個String類型的引用并初始化為“Java”:
String s = "Java";
或 String s = new String("Java")
采用第一種方式創建了一個并非是“引用”的變量,它的值為“Java”,置于堆棧之中。而第二種方式創建了一個對象,它被存儲在堆里,不及在堆棧中高效。因此,當我們需要創建一個很小的、簡單的變量時,采用第一種方式更好。這是Java數據存儲的一個細節。
posted on 2005-10-28 15:48 Flyingis 閱讀(961) 評論(3) 編輯 收藏 所屬分類: JavaSE