一个简单的程序,用于演示Java中的内存泄漏
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的程序,用于演示Java中的内存泄漏相关的知识,希望对你有一定的参考价值。
我正在寻找一个可以在Java中演示内存泄漏的简单程序。
谢谢。
答案
http://www.codeproject.com/KB/books/EffectiveJava.aspx
见第6项。
另一答案
例如,如果您的引用不再需要,但无法被垃圾收集器捕获,则会发生内存泄漏。
有简单的例子,例如来自IBM,显示了原则:
http://www.ibm.com/developerworks/rational/library/05/0816_GuptaPalanki/
另一答案
一本好书的一个很好的例子:http://www.informit.com/articles/article.aspx?p=1216151&seqNum=6
另一答案
Vector v = new Vector();
while (true)
{
byte b[] = new byte[1048576];
v.add(b);
}
这将不断向向量添加1MB字节,直到内存不足为止
另一答案
让我们首先定义Java上下文中的内存泄漏 - 这是一种程序可能错误地保存对在程序运行的其余部分中永远不会再次使用的对象的引用的情况。
一个例子,就是忘记关闭一个打开的流:
class MemoryLeak {
private void startLeaking() throws IOException {
StringBuilder input = new StringBuilder();
URLConnection conn = new URL("www.example.com/file.txt").openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
while (br.readLine() != null) {
input.append(br.readLine());
}
}
public static void main(String[] args) throws IOException {
MemoryLeak ml = new MemoryLeak();
ml.startLeaking();
}
}
以上是关于一个简单的程序,用于演示Java中的内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章