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 函数下的变量 是成员 变量 而其他类中的 是局部
那我们又如何分别是局部和成员变量呢?
定义在 类里面 当成类的属性是指成员变量 是在构造函数中赋值的 这类 是在 栈中运行的
new 出来的对象是 成员变量 而 对象的引用则是 在堆中运行 当成局部变量如 Person a = new Person(1,2);
在这里 new出来的是一个对象 放在 堆中运行 而a 很多人 其实会把他当作一个对象 其实 这是java 中 万事都可以看作成对象的误解
如果 我们 拆开 Person a ;
a=new Person(1,2)
如果 a是 对象的话 那我们 为什么 在地2行又要 new Person呢 这里的a 是指对象的引用 (尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“引用”(来源java编程思想))则在
栈空间执行
还有 在方法中 创建的 类型 也要当作 局部变量 且 方法 执行完 还要 撤销 所用到的空间。
main 函数下的变量 是成员 变量 而其他类中的 是局部
相关文章推荐
- Java拾遗-异常
- [Java Core]Java字符串的代码点和代码单元
- eclipse ide for java ee developers与eclipse ide for java developers有什么区别
- [置顶] JAVAEE struts2的简单文件上传与下载
- Java编译原理
- 【软件使用】GitHub使用教程for Eclipse
- 深入Java单例模式
- Java枚举类
- java中的线程同步问题 模拟出售火车票
- Eclipse Debug的一些用法
- Java并发编程:volatile关键字解析
- java中的线程同步问题解决方案
- MyEclipse 代码自动提示功能失效, 提示no default proposals
- 我的Eclipse设置
- Spring笔记――13.Spring的AOP
- 设置你的开发环境(Eclipse中,IntelliJ IDEA的,NetBeans的)
- Java就业指导
- 技海拾贝 - Java
- 在Mac OS X上面指定Eclipse启动时用指定的某一版本JDK
- Struts2核心工作原理解析