搜集过程
初始标记(CMS-initial-mark)
并发标记(CMS-concurrent-mark)
预清理(CMS-concurrent-preclean)
可被终止的预清理(CMS-concurrent-abrotable-preclean)
重新标记(CMS-remark)
并发清除(CMS-concurrent-swee……继续阅读 »
11个月前 (06-30) 285浏览 0评论
3个赞
在Class初始化完成后,类在调用过程中,执行引擎会把字节码转换为机器码,然后在操作系统中才能执行。在字节码转换为机器码的过程中,虚拟机中还存在着一道编译, 就是即时编译
最初,虚拟机中的字节码是由解释器完成编译的,当虚拟机发现方法或者代码块自行频繁时,就会讲代码标记为热点代码
为了提高热点代码的执行效率,在运行时,即时编译器(JIT)会把这些代码编译成与本……继续阅读 »
11个月前 (06-29) 292浏览 0评论
1个赞
Switch查找case的方式
tableswitch: a table with keys and labels
lookupswitch: uses a table with labels only(采用二分查找法)
tableswitch
当使用tableswitch时,从stack中获取int值,并直接通过index获取需要跳转的labe……继续阅读 »
1年前 (2021-04-15) 246浏览 0评论
1个赞
GC Roots包含哪些(哪些可以作为gc roots)
所谓的GC roots 是垃圾搜集器特有的对象, 垃圾搜集器搜集哪些非GC root的对象并且无法通过GC roots引用直接访问的对象。
一个对象可以属于多个roots, GC roots有一下几种:
Class 由系统类加载器加载的类, 永远不能回收这样的类(自定义的类加载器不是root,……继续阅读 »
1年前 (2021-04-15) 233浏览 0评论
1个赞
-Xms
代表着最小堆, 在jvm启动时就会分配到该大小的区域
-Xmx
代表最大堆, 在jvm最小堆不能满足需求时, 对jvm内存进行扩展, 直到最大堆的内存大小
-Xmn
代表新生代区域的大小
-XX:SurvivorRatio
代表着……继续阅读 »
1年前 (2021-03-20) 346浏览 0评论
2个赞