请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

什么时候对象去永久带(元空间)呢?

翔仔老师,请问对象什么条件下会从老年代去永久带(元空间)呢,在永久带(元空间)中也会发生full gc吗?谢谢解答~:-)

正在回答

1回答

翔仔 2019-10-13 22:05:01

同学好,对象不会进入永久代(元空间),当老年代也满了装不下的时候,就会抛出OOM(Out of Memory)异常,而full gc指代的是老年代和年轻代的垃圾回收,元空间的垃圾回收会是另外一种机制,处理起来比较简单,达到阈值便可以整块进行回收

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕UI4102001 #1
    老师 要是对象不会进入永久代那么为什么JDK7以前需要永久代,JDK8及以后还需要元空间呢?还有既然对象进不了元空间,那么元空间为什么还有垃圾回收呢?
    回复 有任何疑惑可以回复我~ 2019-10-14 02:26:57
  • 翔仔 回复 提问者 weixin_慕UI4102001 #2
    同学好,以前永久代用来存储的是类的信息,比如静态成员变量之类,这些是不可或缺的,后来都移出来了,。而后来的元空间用的是本地内存,区域划分更明显,之所以有垃圾回收,是因为内存如果不回收还是会满的,所以达到阈值条件后,就会回收
    回复 有任何疑惑可以回复我~ 2019-10-14 23:41:08
  • 提问者 weixin_慕UI4102001 回复 翔仔 #3
    原来是这样,感谢老师的耐心解答^_^
    回复 有任何疑惑可以回复我~ 2019-10-14 23:42:37
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信