java内存泄漏

参考:http://zhidao.baidu.com/link?url=Xhh-MGS5k1wx9vvXoYPWHjUr2mxn6S_dCAEbqL191yyVTO8z1jTQhnfBGtDC34uBYQ7DlBqq6SzVfqfEb8_o9_

Java中也会产生内存泄漏,内存泄漏分两种情况:

第一种: 程序在运行过程中产生了无法被回收的对象。

eg1:长生命周期的变量持有短生命周期对象的引用时,导致短生命周期对象不能被回收,可能会导致内存溢出。

eg2: 将对象存入到HashMap中,然后该对象参与hashcode运算的某个域发生了改变,导致无法从HashMap中找到原先保存的对象,就产生了不可回收的对象了。

 

第二种: 程序运行过程中需要的分配的内存大小超过了JVM可以提供的最大值。

eg1:开辟了一个超大的数组,但是JVM内存设置过小。

eg2: 程序中出现死循环,循环中不断创建许多对象且不可回收时。

 

posted @ 2016-08-18 09:54  wrencai  阅读(145)  评论(0编辑  收藏  举报