黑马程序员技术交流社区
标题:
方法区中的值什么时候回收?
[打印本页]
作者:
kebingxing
时间:
2015-10-3 09:59
标题:
方法区中的值什么时候回收?
本帖最后由 kebingxing 于 2015-10-3 10:01 编辑
如题,是自动回收吗,还是需要语句回收?
作者:
风语
时间:
2015-10-3 10:20
当方法结束时,只是把方法区中的值标为垃圾,等待回收,所以是自动回收的,但是不知道什么时候回收
作者:
15001162522
时间:
2015-10-3 10:30
应该是自动回收吧
作者:
太子奕
时间:
2015-10-3 10:44
java的类加载后且当使用阶段完成之后,java类就进入了卸载阶段,也就是所谓的释放。
使用阶段包括主动引用和被动引用,主动饮用会引起类的初始化,而被动引用不会引起类的初始化。
一个java类的完整的生命周期会经历加载、连接、初始化、使用、和卸载五个阶段,当然也有在加载或者连接之后没有被初始化就直接被使用的情况。
PS:关于类的卸载,在类使用完之后,如果满足下面的情况,类就会被卸载:
该类所有的实例都已经被回收,也就是java堆中不存在该类的任何实例。
加载该类的ClassLoader已经被回收。
该类对应的java.lang.Class对象没有任何地方被引用,无法在任何地方通过反射访问该类的方法。
如果以上三个条件全部满足,jvm就会在方法区垃圾回收的时候对类进行卸载,类的卸载过程其实就是在方法区中清空类信息,java类的整个生命周期就结束了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2