JVM-垃圾回收概述

一、什么是垃圾

关于垃圾收集经典问题:

  • 哪些垃圾需要回收
  • 什么时候回收
  • 如何回收

垃圾收集什么:运行程序中,没有任何指针指向的对象,这个对象就是需要回收的垃圾。

在jdk中垃圾回收器一直在优化。

二、为什么需要GC

  • 不进行垃圾回收,内存迟早会消耗完,发生溢出
  • 需要JVM整理内存碎片,清理出整片的内存,分配给新对象
  • 没有GC,就无法保证应用程序正常运行

三、早期垃圾回收

早期的C和C++ 都是手动回收、申请内存的,相对比较灵活。但是增加了代码的复杂度。如果忘记回收可能出现内存泄漏,所谓内存泄漏就是对象已经不用了,但是还有指针指向它,导致它无法回收。

现在比较流行的就是自动垃圾回收的思想,也是趋势。

四、Java垃圾回收机制

  • 自动内存管理(分配、回收),降低了内存泄漏和移除的风险
  • 让开发人员更加关心业务开发
  • 弱化了开发人员内存问题的解决能力,所以开发人员需要根据相关信息定位内存问题,同时也要实施必要的监控和调节
  • GC作用域是方法区和堆,堆空间是GC重点区,频繁Young、很少Old、基本不懂MeatSpace

猜你喜欢

转载自blog.csdn.net/liming0025/article/details/121690612