一、System.gc()的理解


二、内存溢出


三、内存泄漏

1.内存泄漏举例

四、Stop The World


五、程序的并发与并行
1.并发(一个cpu或单核cpu)


2.并行(多个cpu或多核cpu)


3.二者对比

六、垃圾回收的并发与并行
1.并行(多条垃圾回收线程并行工作,STW)

2.并发(用户线程与垃圾回收线程同时工作)

七、安全点与安全区域
1.安全点


2.安全区域


八、几种引用的概述


1.强引用(new出来的就是)

2.软引用(内存不足即回收)(缓存采用)

软引用对象的声明:
Object obj = new Object(); //声明强引用
SoftReference<Object> sf = new SoftReference<>(obj);
obj = null; //销毁强引用
3.弱引用(发现即回收)(缓存采用)

弱引用对象的声明:
Object obj = new Object();
WeakReference<Object> wr = new WeakReference<>(obj);
obj = null;
4.虚引用


5.终结器引用

本文深入探讨了Java中的System.gc()方法及其影响,详细阐述了内存溢出和内存泄漏的区别与实例。同时,解释了StopTheWorld事件在垃圾回收过程中的角色。接着,区分了并发与并行的概念,并在垃圾回收场景中应用。此外,介绍了安全点和安全区域在并发GC中的作用。最后,对四种引用类型:强引用、软引用、弱引用和虚引用进行了概述,讨论了它们在内存管理中的不同角色。

1712

被折叠的 条评论
为什么被折叠?



