java static final 靜態成員變量佔用內存

java static final 靜態成員變量佔用內存html

package test.others;

public class Test {
	private String sNormal;
	private static String sStatic;
	
	private void funNormal(){
		
	}
	
	private static void funStatic(){
		
	}
	
	void main(String argv[]){
		Test test = new Test();
	}
}

 

如上,sStatic, funNormal, funStatic 是在虛擬機加載類 Test 時就加入到類 Test 方法區的內存中(爲它們申請內存)。而在 new Test() 時才把 sNormal 放到 test 指向的堆中(爲它申請內存)。java

所以,類 static 成員變量,類方法及類 static 方法都只佔用一分內存。並不會由於 new 了多個類實例而增長。而只有類的普通成員變量纔會每一個實例一份。spa

 

實際上,這與 C++ 是同樣的。.net

 

參考:http://www.blogjava.net/Jack2007/archive/2008/05/21/202018.htmlcode

相關文章
相關標籤/搜索