Avatar ·

如何在Java中创建内存泄漏?示例与原因

大家好。我是一名Java初学者,经常听说Java有垃圾回收器(GC)可以自动清理内存。但有人告诉我,即使有GC也可能发生内存泄漏(memory leak)。我试图理解这是如何可能的,但我找到的所有示例要么太复杂,要么使用了旧版本的Java。 我需要写一个小的教学项目来演示内存泄漏,以便更好地理解垃圾回收器的工作原理,并在实际工作中避免此类问题。我尝试过在循环中创建大量对象而不保存引用——但GC会清理它们。如何让对象保留在内存中而不被删除? 以下是我尝试过的示例,但它没有导致泄漏: ```java public class MemoryLeakTest { public static void main(String[] args) throws InterruptedException { for (int i = 0; i < 1000000; i++) { String s = new String("test" + i); } System.gc(); Thread.sleep(100