本文主要讲述了Java语言的特性和垃圾回收机制,以及频繁Full GC的问题。通过分析JVM参数、Tomcat参数、堆栈文件和代码,发现内存泄漏的原因是每个线程中存储了大量的SessionInMemory对象,导致内存占用过高。解决方案包括删除过期的Session、取消ThreadLocal策略、使用本地缓存和减少Tomcat的核心线程数。最终,作者定位到问题的根本原因是shiro-redis组件的版本问题,升级到3.2.3版本后解决了该问题。文章还总结了在报警前后应该注意的事项和收获。
完成下面两步后,将自动完成登录并继续当前操作。