Java内存泄露大白话简介说明
下文笔者讲述java中内存泄露原因及避免方法分析,如下所示
Java内存泄露简介
当一个程序使用内存越来越多 但是内存未得到释放 最终导致内存耗尽,我们将这种情况称之为"内存泄露"
内存泄露的示例代码
public class MemoryLeakExample { public static void main(String[] args) { list list = new ArrayList(); while (true) { list.add(new Object()); } } }
查看Java内存泄露
查看Java内存泄露 我们可以使用以下工具 如VisualVM,MAT等工具 结合JVM提供的固有工具如JConsole,JVisualVM等 通过观察Heap的变化趋势 对象的增长情况 分析Heap Dump等方式例
public class MemoryLeakExample { private static List list = new ArrayList(); public void memoryLeak() { list.add(new byte[1 * 1024 * 1024]); } }
避免Java内存泄露的方法
防止内存泄露,需做到以下几点: 当一个对象已经不再使用 就应该让它成为垃圾回收器的潜在对象 也就是把所有引用它的引用都清除掉例
public class NoMemoryLeakExample { public void noMemoryLeak() { for (int i = 0; i < 10; i++) { byte[] bytes = new byte[1 * 1024 * 1024]; process(bytes); } } public void process(byte[] bytes) { // Do something } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。