1.介绍这篇文章之前,小编先介绍一款JVM可视化工具JConsole,
界面长这样。可以查看堆内存,线程,类,CPU占用的使用情况。
这个东西在哪呢?在JDK安装目录bin下。
2.进入正题,ThreadLocal为什么会出现OOM,解释下什么是OOM,OOM是JVM的内存出现不够的情况。我们知道ThreadLocal是存取当前线程的变量的,他里面还有set()方法,可以为我们存取一些东西。但是set的东西满了但是没有进行remove()就会出现OOM。
下面是小编操作的一个实例:
因为当时把:ThreadLocal.remove()方法注释了。报的错截图给你们看。
堆内存溢出。