堆内存与栈内存
2014-04-01 14:43
141 查看
栈内存(stack)
函数中定义的基本类型变量和引用变量都存在Stack中。
栈内存的数据大小和生命周期必须是确定的。
优点:存取速度快
在一个代码块中声名一个变量时,java就在栈中为这个变量分配内存空间,当变量超过作用域后,java会自动释放掉为该变量分配的内存空间。
堆内存(heap)
堆内存中存放由new创建的对象和数组,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉。这个也是java比较占内存的主要原因。
在程序中使用栈内存中的引用变量来访问堆中的数组或者对象
函数中定义的基本类型变量和引用变量都存在Stack中。
栈内存的数据大小和生命周期必须是确定的。
优点:存取速度快
在一个代码块中声名一个变量时,java就在栈中为这个变量分配内存空间,当变量超过作用域后,java会自动释放掉为该变量分配的内存空间。
堆内存(heap)
堆内存中存放由new创建的对象和数组,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉。这个也是java比较占内存的主要原因。
在程序中使用栈内存中的引用变量来访问堆中的数组或者对象
相关文章推荐
- 获取打开文件的路径和文件名
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容
- stringstream的用法
- 一步步学习微软InfoPath2010和SP2010--第十章节--与SharePoint Designer工作流的InfoPath集成
- 【Graph】Homography
- python异步任务队列示例
- 一致和非一致段
- 算法的时间和空间复杂度
- MySQL源码分析及核心内幕之1 -- 源码目录结构
- 高速总线标准
- Java日期转换SimpleDateFormat格式大全
- .NET中的CTS、CLS和CLR
- That's the main reason anybody who require a GHD hair straightner appropriate copy package
- 一步步学习微软InfoPath2010和SP2010--第十章节--与SharePoint Designer工作流的InfoPath集成
- 线性代数(四十九) : 希尔伯特-施密特范数
- Solr集群架构概述及delta-import详细配置
- NAT地址转换实验
- Oracle SQL性能优化
- gtest实现架构简单分析
- 《ASP.NET MVC4 WEB编程》学习笔记------Model模型绑定