java 中的局部变量是在栈中运行的 而 成员变量 (全局变量)是在 堆中的运行的,
那我们又如何分别是局部和成员变量呢?
定义在 类里面 当成类的属性是指成员变量 是在构造函数中赋值的 这类 是在 栈中运行的
new 出来的对象是 成员变量 而 对象的引用则是 在堆中运行 当成局部变量如 Person a = new Person(1,2);
在这里 new出来的是一个对象 放在 堆中运行 而a 很多人 其实会把他当作一个对象 其实 这是java 中 万事都可以看作成对象的误解
如果 我们 拆开 Person a ;
a=new Person(1,2)
如果 a是 对象的话 那我们 为什么 在地2行又要 new Person呢 这里的a 是指对象的引用 (尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“引用”(来源java编程思想))则在 栈空间执行
还有 在方法中 创建的 类型 也要当作 局部变量 且 方法 执行完 还要 撤销 所用到的空间。
main 函数下的变量 是成员 变量 而其他类中的 是局部