同样以一个Person类为演示,Person里加入一个static ss 成员变量和一个printStatic 静态方法。 在内存中显示如下
如上图所示,static 会在方法区创建ss成员变量和printStatic方法。由于static会在堆空间方法区,所以static不可以直接调用左侧的非static方法及变量,当然,这只是通过图形一种形象有解释,实际上是不对的。 实质上,因为静态方法在类装载的时候就分配了内存块,而非静态的方法和变量在new这个类的对象的时候才分配内存块, 他们内存分配的时间不一样 静态区域访问非静态区域是没有任何意义的