1、常见的静态集合类,比如HashMap和Vector。这些容器都是静态的,生命周期和程序是一致的,程序结束之前是不能够被释放的,从而会产生内存泄漏。
2、各种连接,连接完成之后,不再使用的话需要调用close()方法来释放这些连接,只有连接关闭之后,垃圾回收器才会回收相应的对象。
3、监听器,一个应用中会用到多个监听器,如果在释放对象的时候没有关闭相应的监听器,可能导致内存泄漏。
4、变量的不合理作用域,一般而言,如果一个变量的定义作用范围大于其使用范围,有可能就会造成内存泄漏。
5、单例模式也可能会造成内存泄漏。