程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> heap-關於java靜態變量的存儲位置

heap-關於java靜態變量的存儲位置

編輯:編程綜合問答
關於java靜態變量的存儲位置

網上有很多關於類變量存儲位置的文章,比如http://gao-xianglong.iteye.com/blog/2152345 說明靜態變量是存儲在方法區中,但是本人隨便寫了個例子如下:
public static Object o = new Object[999999999];
public static void main(String[] args) {
}

運行報出java.lang.OutOfMemoryError: Java heap space說明是堆溢出了,難道靜態變量又存儲在堆中了?
關於這塊很不解,求解釋

最佳回答:


1.寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序中無法控制. 
2. 棧:存放基本類型的變量數據和對象的引用,但對象本身不存放在棧中,而是存放在堆(new 出來的對象)或者常量池中(字符串常量對象存放在常量池中。) 
3. 堆:存放所有new出來的對象。 
4. 靜態域:存放靜態成員(static定義的) 
5. 常量池:存放字符串常量和基本類型常量(public stat......
答案就在這裡:java變量的存儲位置
----------------------Hi,地球人,我是問答機器人小S,上面的內容就是我狂拽酷炫叼炸天的答案,除了贊同,你還有別的選擇嗎?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved