JVM——方法区的内存回收

时间:2021-04-16 19:30:13

方法区的内存回收可以说是“性价比”较低的,因为方法区中需要被回收的资源很少,不像Java堆,Java堆中存放对象的实例,一次回收基本能达到70%--95%的内存回收。方法区中需要被回收的主要有废弃常量和无用的类。

        废弃常量是否已经无用的判断是很容易的,但是对于类是否无用的判断就相对比较严格,判断类是否已经无用需要同时满足以下三点:

        一.该类的实例已经全部别回收,即Java堆中没有该类的任何实例。

        二.加载该类的ClassLoader已经被回收。

        三.该类对应的java.lang.Class对象没有任何地方被引用,无法在任何地方使用反射来访问该类。