Java耗内存原理
来源:互联网 发布:淘宝延长发货时间 编辑:程序博客网 时间:2024/05/16 17:35
Java程序在内存中的分配为堆内存和栈内存,了解了堆内存和栈内存的原理就能看出Java程序比较耗内存的原因了。
1、栈内存
在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java在栈中为这个变量分配内存空间,当该变量退出其作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。
2、堆内存
堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。
在堆中产生了一个数组或对象后,在栈中会有一个变量,这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。 引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象。引用变量就相当于是为数组或者对象起的一个名称。
引用变量是普通的变量,定义时在栈中分配,引用变量在程序运行到其作用域之外后被释放。而数组和对象本身在堆中分配,即使程序运行到使用 new 产生数组或者对象的语句所在的代码块之外,数组和对象本身占据的内存不会被释放,数组和对象在没有引用变量指向它的时候,才变为垃圾,不能在被使用,但仍然占据内存空间不放,在随后的一个不确定的时间被垃圾回收器收走回收清除掉。这也是 Java 比较占内存的原因。
阅读全文
0 0
- Java耗内存原理
- Java虚拟机高耗内存的一种考虑
- 如何看一段JAVA代码耗了多少内存
- 内存耗光了
- 防止内存全部耗完
- MySQL 耗内存的解决方法
- MyEclipse耗内存的决绝办法
- 耗内存应用优化实际案例
- 耗内存应用优化实际案例
- 耗内存应用优化实际案例
- 耗光内存的一段C
- 耗内存应用优化实际案例
- 如何查看耗光内存的进程
- Linux,zfs耗内存的原因剖析
- 耗内存应用优化实际案例
- Android Studio 很耗内存的问题
- SDWebImage加载gif超级耗内存
- java内存分配原理
- ssh登陆系统ulimit不生效的问题
- 机器学习算法---决策树
- 新开淘宝店铺如何推广运营
- Activity之四大启动模式
- 登陆admin后台 报错 'WSGIRequest' object has no attribute 'user'
- Java耗内存原理
- 数据结构学习记录-链表2
- CCF考试——201709-5除法
- 伪密码
- 关于日期类
- AWE2016提前爆料,智城云小伙伴将展示哪些黑科技?
- 汇编写启动代码之设置栈和调用C语言
- STM32F030 USART2配置函数 波特率不对导致无法进入中断
- 全局描述符表