非静态成员是在类实例化之后才才会被创建,
而static是成员是属于类,不属于该类的任何对象。运行时载入类的同时会初始化静态变量。
非静态成员并没有引用可以被赋值。
这个和java的运行机制有关。
java先加载static的变量,在类编译的时候就执行了!
而动态是在程序运行的时候赋值的!
static修饰的变量只被初始化一次,并且保持最近的值,哪怕创建它的函数已经结束,这个变量也不会被释放,下次调用是同一个地址,所以里面的值是上次的。
具体原因请关注变量分配空间相关知识,神马常量区,代码区,堆栈区的