博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中的内存管理(栈和堆、方法区)
阅读量:4178 次
发布时间:2019-05-26

本文共 424 字,大约阅读时间需要 1 分钟。

本篇主要是讲述内存管理中栈和堆分别保存着什么

Java中的内存是由JVM来管理的

1)堆:存储new出来的对象(包括实例变量)

垃圾:没有任何引用指向的对象

垃圾回收器(GC)不定时到内存中清扫垃圾,回收过程是透明的(看不到的),不一定发现垃圾就立刻回收

调用System.gc()可以建议JVM尽快调度GC来回收

内存泄漏:不再使用的对象还没有被及时的回收

建议:对象不再使用时应及时将引用设置为null

实例变量的生命周期:从对象在堆中创建开始到对象从堆中被回收结束

2)栈:存储正在调用中的方法中的局部变量(包括方法参数)

调用方法时会为该方法在栈中分配一块对应的栈帧,栈帧中存储局部变量(包括方法参数)

当方法调用结束时,栈帧被清除,局部变量一并失效

局部变量的生命周期:调用方法时存储在栈中,方法结束时与栈帧一并被清除

3)方法区:存储.class字节码文件(包括方法、静态变量)

方法只有一份,通过this来区分具体的调用对象

内存图:

 

转载地址:http://lhlai.baihongyu.com/

你可能感兴趣的文章
51单片机程序执行流程(STARTUP.A51)
查看>>
原码, 反码, 补码 详解
查看>>
Java自学第一阶段(二)- 小试牛刀
查看>>
Java自学第一阶段(三)- 万能的变量
查看>>
Java自学第一阶段(四)-万能的变量(2)
查看>>
HashMap存储原理以及与hashcode、equals方法的关系
查看>>
python3.6在windows下安装scrapy遇到的问题总结
查看>>
pycharm中打开scrapy项目,import scrapy报错问题
查看>>
scrapy爬取图片,自定义图片下载路径和图片名称
查看>>
python3下import MySQLdb出错问题
查看>>
Maven搭建SSM框架(eclipse)
查看>>
synchronized+Integer模拟火车票预售,出现的问题总结
查看>>
沉浸式过山车:穿梭时空,自在畅游巨蚁数字虚实世界
查看>>
沉浸式过山车,感受巨蚁数字心灵的激情
查看>>
沉浸式过山车,巨蚁数字带给您前所未有的科技体验
查看>>
质量好的自行车品牌有哪些辐轮王土拨鼠全球顶级自行车品牌排行榜
查看>>
htmlunit爬取js异步加载后的页面
查看>>
修改Linux系统locale设置
查看>>
linux网络无法连接问题
查看>>
linux 查看ip
查看>>