您现在的位置是:课程教程文章
java中gc是什么
2023-12-15 21:04课程教程文章 人已围观
-
Java零基础到高级全套视频下卷[springboot
Java零基础到高级全套视频下卷[springboot欢迎加入官方技术讨论群! 我所有课程的学习主线为:java基础--- 面向对象 -... -
开源的JavaScript的超集TypeScript入门教程
开源的JavaScript的超集TypeScript入门教程学习资料和技术交流请与老师QQ沟通1586281525 TypeScript是JavaScript类型的超集,它可... -
电影院订票选座微信小程序(后台javawe
电影院订票选座微信小程序(后台javawe用户首次登陆系统需要注册一个用户或直接使用微信作为账号,用户在登录平台... -
Java程序设计基础
Java程序设计基础...
我们知道当系统中内存满了后,一般而言会要求进行清除。不过在java中的内存清理有些特殊,JVM自带了垃圾回收功能,对于需要清理的内存会根据一定的机制进行回收。下面我们就java中GC的概念、范围、回收和触发条件带来全面的讲解,一起来看看都有哪些具体的内容吧。
1.概念
垃圾回收机制,内存空间是有限的,你创建的每个对象和变量都会占据内存,gc做的就是对象清除将内存释放出来,这就是GC要做的事。
2.范围
在JVM五种内存模型中,有三个是不需要进行垃圾回收的:程序计数器、JVM栈、本地方法栈。因为它们的生命周期是和线程同步的,随着线程的销毁,它们占用的内存会自动释放,所以只有方法区和堆需要进行GC。
3.回收条件
(1)对象没有引用
(2)作用域发生未捕获异常
(3)程序在作用域正常执行完毕
(4)程序执行了System.exit()
(5)程序发生意外终止(被杀线程等)
4.触发条件
(1)程序调用System.gc时可以触发
(2)系统自身来决定GC触发的时机(根据Eden区和From Space区的内存大小来决定。当内存大小不足时,则会启动GC线程并停止应用线程)
GC又分为 minor GC 和 Full GC (也称为 Major GC )
Minor GC触发条件:当Eden区满时,触发Minor GC。
Full GC触发条件:
a.调用System.gc时,系统建议执行Full GC,但是不必然执行
b.老年代空间不足
c.方法去空间不足
d.通过Minor GC后进入老年代的平均大小大于老年代的可用内存
e.由Eden区、From Space区向To Space区复制时,对象大小大于To Space可用内存,则把该对象转存到老年代,且老年代的可用内存小于该对象大小。
以上就是java中gc关于垃圾回收的介绍,我们在创建程序和函数时都会产生一定的系统内存,这时候就需要GC对这些多出来的内存进行处理了。学会后也快来试试gc对于垃圾回收的处理方法把。
课程教程:java中gc是什么上一篇:ps抠图工具有哪些
下一篇:没有了