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

相关文章
相关标签/搜索