(四)、JVM-垃圾回收-开篇

一、什么场景下该使用什么垃圾回收策略?

  • 在对内存要求苛刻的场景:想办法提高对象的回收效率,多回收掉一些对象,腾出更多内存。
  • 在CPU使用率高的情况下:降低高并发时垃圾回收的频率,让CPU更多的去执行你的业务而不是垃圾回收。

二、垃圾回收发生在哪些区域?

堆、方法区

三、对象在什么时候能够被回收?

  • 引用技术器(处理循环引用存在问题)
  • 可达性分析:以根对象(GC Roots)作为起点向下搜索,走过的路径被称之为引用链(Reference Chain),如果某个对象到根对象没有引用链相连时,就认为这个对象是不可达的,可以回收。

四、可达性算法注意点

一个对象不可达,也不一定会被回收

五、finalize()的建议

  • 避免使用finalize()方法,操作不当可能会导致问题。
  • finalize()优先级低,何时会被调用无法确定,因为什么时间发生GC不确定。
  • 建议使用try…catch…finally来替代finalize()**
全部评论

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务