如果你这个单例类是使用静态单态模式实现,不会被收掉,而且不安全,它是JVM中的单例,在一个JVM中运行的多个Web项目都可以访问这个单例。
这是使用单例的一个陷阱,因此,你自己必须在编程将单例中的对象引用全部清除,否则造成内存泄漏。
建议将单例类放入Web容器的Application scope中,使用servletcontext.setAttribute保存这个类。
在我的理解,如果把一个类放到了 Application scope 里面,那么他在系统里面就应该只有一个实例,是这样吗?如果是的话,那为什么还要将这个类写成单例类呢?
板桥大哥能否解答一下,jive论坛的缓存是如何实现的?也是单例类吗?
Jive缓存也是使用单例实现的。