一个java程序运行结束后,占用的那些内存是立即被释放掉么?
答案:2 悬赏:30 手机版
解决时间 2021-01-25 14:46
- 提问者网友:雨不眠的下
- 2021-01-25 00:13
一个java程序运行结束后,占用的那些内存是立即被释放掉么?
最佳答案
- 五星知识达人网友:野慌
- 2021-01-25 01:29
Java虚拟机运行结束后,虚拟机进程占用的内存空间被操作系统回收,至于操作系统是不是释放占用的物理内存,要看操作系统核心算法是怎么设计的
全部回答
- 1楼网友:青灯有味
- 2021-01-25 02:33
java堆上的内存都是通过gc来回收的,最后str只是指向了最后一次申请的内存,之前申请的内存会在新生代满了之后,触发minor gc(minor gc是新生代使用的垃圾收集器)来进行内存的回收(也就是释放)。java堆内存的管理采用了分代的方法,具体可以分为新生代,老年代以及方法区(或者叫做永久代,永久代可能在jdk1.8以后取消),一般来说,如果没有设置虚拟机参数,对象优先在新生代分配内存。具体新生代还分为一个eden区,两个survivor区。楼主要是有兴趣的话,可以多了解一下java的垃圾回收机制,我就不多说了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯