Java内存分析和总结
来源:互联网 发布:如何评价李鸿章 知乎 编辑:程序博客网 时间:2024/06/06 00:30
Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。
堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或者对象之后,还可以在栈中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或者对象,引用变量就相当于是为数组或者对象起的一个名称。引用变量是普通的变量,定义时在栈中分配,引用变量在程序运行到其作用域之外后被释放。而数组和对象本身在堆中分配,即使程序运行到使用 new 产生数组或者对象的语句所在的代码块之外,数组和对象本身占据的内存不会被释放,数组和对象在没有引用变量指向它的时候,才变为垃圾,不能在被使用,但仍然占据内存空间不放,在随后的一个不确定的时间被垃圾回收器收走(释放掉)。
这也是 Java 比较占内存的原因,实际上,栈中的变量指向堆内存中的变量,这就是 Java 中的指针!
0 0
- Java内存分析和总结
- java内存分析总结
- 内存分析和优化总结
- Java内存泄露和分析
- Java堆内存和栈内存分析
- Java内存泄漏简单的分析总结
- Android OOM:内存管理分析和内存泄露原因总结
- Java内存溢出的分析和解决
- java 内存分析和调优
- Java中的内存模型和多线程分析
- java 堆内存的转换和分析
- Java 堆内存 和日志分析
- Java内存模型和JVM优化总结
- Java内存之本地内存分析神器: NMT 和 pmap
- 内存分析优化总结
- Android内存分析总结
- Android内存分析总结
- Android内存分析总结
- DIV+CSS中图片和文字居中问题解决方案
- java 实现微信搜索附近功能
- gitshell同时用于github与gitlab
- iOS解决navigationBar因为图片尺寸问题造成的会向上偏移64的问题
- ReactiveCocoa入门教程——第一部分<转>
- Java内存分析和总结
- 01背包,完全背包,多重背包问题详细介绍以及源代码实现
- redis 3.0的集群部署
- eclipse的人对在eclipse中关联源码
- cmd的sql执行计划各项属性说明
- MongoDB使用索引
- C语言段错误调试
- Android动画效果translate、scale、alpha、rotate详解
- 关于android手机开发中支持不同分辨率的总结