内存泄漏:由于代码编写问题导致内存分配出去无法回收
内存溢出:指程序要求的内存,超出了系统所能分配的范围,从而发生溢出
区别:内存溢出,提供的内存不够;Java内存泄漏,无法再提供内存资源
为了避免内存泄露,在编写代码的过程中可以参考下面的建议:
1、尽早释放无用对象的引用
2、使用字符串处理,避免使用String,应大量使用StringBuffer,每一个String对象都得独立占用内存一块区域
3、尽量少用静态变量,因为静态变量存放在永久代(方法区),永久代基本不参与垃圾回收
4、避免在循环中创建对象
5、开启大型文件或从数据库一次拿了太多的数据很容易造成内存溢出,所以在这些地方要大概计算一下数据量的最大值是多少,并且设定所需最小及最大的内存空间值。