我尝试过一个简单的实验来验证垃圾收集器的功能.引用3.9关于.NET中自动内存管理的自动内存管理(MSDN).对我来说,它听起来像是C++中的共享指针.如果对象的引用计数器变为零,则它将被垃圾收集器解除分配.
所以我尝试在主窗体中创建一个函数.该函数在我的主窗体的Shown事件函数内调用,该函数在构造函数之后执行.这是实验代码.
public void experiment()
{
int[] a = new int[100000];
int[] b = new int[100000];
int[] c = new int[100000];
int[] d = new int[100000];
a = null;
b = null;
c = null;
d = null;
}
Run Code Online (Sandbox Code Playgroud)
以下是结果:




为什么垃圾收集器即使在设置为null之后也不释放由数组a,b,c,d分配的内存?
我读过,如果测试代码覆盖率低于预定义的阈值,我们可以将 JaCoCo 配置为使 Maven 构建失败,但是如果测试代码覆盖率从之前的测试代码覆盖率下降,我们想要使构建失败怎么办?