下面我具体反驳上面说法:
int a 如果是在定义在类的成员位置,那么a是在创建该对象的时候在堆中分配内存
static int a 如果是定义在类的成员位置,那么a是在加载该类的时候在方法区分配内存
int a 如果是在局部变量位置,是在 jvm 执行到这条语句所在函数的时候,在 jvm 的栈区中->该函数的栈帧中的-> local 变量区分配内存,local 变量就是局部变量啦
-------------------------------------------------------------------
Class 类型的对象在方法区
String 类型的对象也可以在方法区的类的常量池
所以上面的说法都有漏洞