前言据我看到的面试题有:判断垃圾回收的算法有什么,以及是什么原理,垃圾收集算法有什么,常见的垃圾回收器有什么,什么是STW等,所以这篇博客基于GC给大家介绍,如果有其他面试题可以在评论区发言,博客可修改内容,可添加。
一、判断垃圾回收的算法先提前说两个算法,分别是:
引用标记算法
可达性分析算法
.引用标记算法引用标记算法是在Java对象头(Java对象头在介绍多线程的时候有详细的解释,直达链接:Java多线程:三、多线程锁、java锁的实现)中开辟空间,记录被引用的次数(Reference Count),如果A变量被其他对象引用时计数器+,引用A变量的其他变量被删除则-,如果计数器为时,则判断A变量需要被回收。
举个例子:
String str = "我不想上早八";
此时,在Java虚拟机栈(以下简称栈)开辟一个内存空间记录str,此时堆中的字符串常量池的“我不想上早八”,被引用的次数就是(Reference CountD;),此时我做修改操作:
String str = "其实我想上早七";
此时,在栈中 ...