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