发布于2021-05-30 19:02 阅读(1419) 评论(0) 点赞(2) 收藏(2)
Java 冲所有异常都来自顶级父类 Throwable。
Throwable 下有两个子类 Exception 和 Error,用于表示程序出现了不正常的情况。区别在于:
会发生垃圾回收,如果永久代满了或者是超过了临界值,会触发完全垃圾回收( Full GC)。
8:1:1
。下面来逐步介绍一下分代收集算法的流程:
Minor GC 会将伊甸园和幸存区FROM仍需要存活的对象先复制到 幸存区 TO中, 并让其寿命加1,再交换FROM和TO。
流程相同,仍需要存活的对象寿命+1
:(下图中 FROM 中寿命为1的对象是新从伊甸园复制过来的,而不是原来幸存区 FROM 中的寿命为1的对象,这里只是静态图片不好展示,只能用文字描述了)
再次创建对象,若新生代的伊甸园又满了,则会再次触发 Minor GC(会触发 Stop The World, 暂停其他用户线程,只让垃圾回收线程工作),这时不仅会回收伊甸园中的垃圾,还会回收幸存区中的垃圾,再将活跃对象复制到幸存区TO中。回收以后会交换两个幸存区,并让幸存区中的对象寿命加1!
分代收集算法流程小结:
+1
,并且交换 FROM 和 TO。15
时,会晋升至老年代。在HotSpot虚拟机中,Eden区和Survivor区的默认比例为8:1:1
,即-XX:SurvivorRatio=8
,其中Survivor分为From Survivor和ToSurvivor,因此Eden此时占新生代空间的80%
。
Young GC:当新生代中的Eden区没有足够空间进行分配时会触发 Young GC。
Full GC:
System.gc()
默认也是触发 Full GC。不会!
在Java中,一个类的全名(包名+类名
)作为其标识,但在JVM中,一个类用其 全名 + 类加载器
作为唯一标识,不同类加载器加载的类置于不同的命名空间中,这叫做类加载器隔离。
参考文章:JVM中如何唯一标识一个类
参考文章:Java虚拟机面试题精选
总结的面试题也挺费时间的,文章会不定时更新,有时候一天多更新几篇,如果帮助您复习巩固了知识点,还请三连支持一下,后续会亿点点的更新!
为了帮助更多小白从零进阶 Java 工程师,从CSDN官方那边搞来了一套 《Java 工程师学习成长知识图谱》,尺寸 870mm x 560mm
,展开后有一张办公桌大小,也可以折叠成一本书的尺寸,有兴趣的小伙伴可以了解一下,当然,不管怎样博主的文章一直都是免费的~
原文链接:https://blog.csdn.net/weixin_43591980/article/details/117378135
作者:再拍我就焖面
链接:http://www.phpheidong.com/blog/article/86743/e4450f3c98357e9be529/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!