摘要:寄存器這是最快的存儲區,因為它位于不同于其他存儲區的地方處理器內部。存儲在字符串常量池中和存儲于棧中創建了個對象,對象存儲在堆內存中引用存于棧中創建了個對象。變量存儲在棧內存中,兩個對象存儲在堆內存中
1. 寄存器
這是最快的存儲區,因為它位于不同于其他存儲區的地方——處理器內部。但是寄存器的數量極其有限,所以寄存器由編譯器根據需求進行分配。你不能直接控制,也不能在程序中感覺到寄存器存在的任何跡象。
2. 棧(stack)位于通用RAM中, 存放基本類型的變量數據和對象的引用,但對象本身不存放在棧中,而是存放在堆(new 出來的對象)或者常量池中(字符串常量對象存放在常量池中)
3. 堆(heap)存放所有new出來的對象
4. 靜態存儲(static storage)存放靜態成員(static定義的)
5. 常數存儲(constant storage)存放字符串常量和基本類型常量(public static final)
6. 非 RAM 存儲。如果數據完全存活于程序之外,那么它可以不受程序的任何控制,在程序沒有運行時也可以存在。
測試public static void main(String[] args) { // 創建了1個string對象。"apple"存儲在字符串常量池中 , str1 和str2存儲于棧中 String str1 = "apple" ; String str2 = "apple" ; System.out.println(str1==str2);//true // 創建了2個string對象,對象存儲在堆內存中, 引用存于棧中 String str3 = new String("orange" ); String str4 = new String("orange" ); System.out.println(str3==str4);//false . //創建了2個對象。兩個1對象存儲在堆內存中 Integer l1 = new Integer(1); Integer k1 = new Integer(1); System.out.println(l1==k1);//false . // 以下兩條語句創建了2個對象。i1,i2變量存儲在棧內存中,兩個256對象存儲在堆內存中 Integer i1 = 256; Integer i2 = 256; System.out.println(i1==i2);//false }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65338.html
摘要:堆棧位于通用隨機訪問存儲器中,但通過堆棧指針可以從處理器那里獲得直接支持。堆棧指針若向下移動,則分配新的內存若向上移動,則釋放那些內存。創建程序時,系統必須知道存儲在堆棧內所有項的確切聲明周期,以便上下移動堆棧指針。 寫在前面 首先我想說的是 Java編程思想——知識卡片 將是一系列文章,文章的內容是我閱讀《Java編程思想》這本書的心得體會,那么我為什么要寫這一系列的文章呢?原因有一...
摘要:最近一直在學習,由于的完全是半路出家,以前一直在用和之類的東西,對于時間和日期的處理,一直沒能弄得比較清楚。說清楚,中,原始的存儲只有以下幾種文檔。有符號整數,根據值的大小存儲在字節中。。浮點數,儲存為字節的浮點數。。 最近一直在學習Android,由于Xana的Java完全是半路出家,以前一直在用C#、C++和Python之類的東西,對于時間和日期的處理,一直沒能弄得比較清楚。 說...
閱讀 1093·2021-10-12 10:11
閱讀 877·2019-08-30 15:53
閱讀 2286·2019-08-30 14:15
閱讀 2961·2019-08-30 14:09
閱讀 1197·2019-08-29 17:24
閱讀 972·2019-08-26 18:27
閱讀 1283·2019-08-26 11:57
閱讀 2146·2019-08-23 18:23