JAVA之堆/栈
2015-07-15 08:52
267 查看
很多时候都搞不清楚JAVA中堆和栈的区别。
和C/C++不同的是,在JAVA中堆和栈是自动管理的。
在函数中定义的一些基本类型变量和对象的引用变量都是在函数的栈内存中分配;堆内存用于存放由new创建的对象和数组。堆主要用来存放对象,栈主要用来运行程序。
堆是由垃圾回收来负责,堆的优势是可以动态地分配内存的大小,生存期也不必事先告诉编译器,缺点是存取速度慢(由于要在运行时动态分配内存);栈的优势是存取速度快,仅次于寄存器,还有一点,栈中的数据可以共享,缺点是栈中数据的大小和生存周期必须是确定的,缺乏灵活性。
参考:
/article/5811641.html
/article/8793423.html
http://bbs.csdn.net/topics/290004554
和C/C++不同的是,在JAVA中堆和栈是自动管理的。
在函数中定义的一些基本类型变量和对象的引用变量都是在函数的栈内存中分配;堆内存用于存放由new创建的对象和数组。堆主要用来存放对象,栈主要用来运行程序。
堆是由垃圾回收来负责,堆的优势是可以动态地分配内存的大小,生存期也不必事先告诉编译器,缺点是存取速度慢(由于要在运行时动态分配内存);栈的优势是存取速度快,仅次于寄存器,还有一点,栈中的数据可以共享,缺点是栈中数据的大小和生存周期必须是确定的,缺乏灵活性。
参考:
/article/5811641.html
/article/8793423.html
http://bbs.csdn.net/topics/290004554
相关文章推荐
- java 静态变量与方法实例变量与方法的内存占用
- Java-多线程基本
- 对象引用与对象的区别
- Java学习——传说中的13个规范
- 《Java程序性能优化:让你的Java程序更快、更稳定》
- 《Java程序性能优化:让你的Java程序更快、更稳定》
- Java中ArrayList和LinkedList区别
- java位运算大全
- Java线程及多线程技术及应用
- JAVA的面向对象编程
- Java程序设计
- JAVA词汇大全
- eclipse中链接不上SVN资源库,一连就蹦。
- JAVA中的反射只获取属性的get方法
- java生成图片验证码显示在页面上
- java 读取文件的方法大全
- 配置Eclipse为黑色主题
- JAVA 8 新特性 ---lambda
- java中类的继承
- SpringMVC返回JSON报错