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

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

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

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

堆、方法区

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

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

四、可达性算法注意点

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

五、finalize()的建议

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

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务