您的位置:首页 > 编程语言 > Java开发

java 的堆栈 的内存分析

2015-09-03 14:07 239 查看
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 函数下的变量 是成员 变量   而其他类中的 是局部 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: