首先要理解类与对象的关系,作为类来说,应该是JVM启动后就加载到内存中,此时类中的静态属性和方法信息存放在了称为栈的结构中。而作为对象而言,往往是通过new的方式形成的,在Java中对象是存储在堆的结构中。
因为栈的结构单元长度都是一样的,所以计算很快,放入栈中的数据处理速度要比堆中的数据快很多,这就是说用存储在栈中的东西,比如静态属性、原型的数据结构(int、boolean等类型)的时候比用存储在堆中的东西,比如对象,要快得多。
从另一个角度讲,由于静态属性是存放在栈中,所以不必new对象就可以使用;而相对应静态方法也是不用new对象就可以使用的, 很容易看出来,静态方法能使用的属性也应该是静态的。
补充来说,一个类的一个特定的静态属性只对应一个值。