java 写个循环耗尽系统内存
时间: 2023-08-18 15:06:15 浏览: 42
以下是一个可能耗尽系统内存的 Java 循环示例:
```
public class MemoryHog {
public static void main(String[] args) {
ArrayList<byte[]> list = new ArrayList<>();
while (true) {
byte[] bytes = new byte[1048576]; // 1 MB
list.add(bytes);
}
}
}
```
这个程序会不断地创建 1MB 大小的 byte 数组,并将其添加到一个 ArrayList 中。由于没有任何退出条件,这个程序将一直运行下去,直到系统内存不足,导致 OutOfMemoryError 异常抛出。请注意,运行此程序可能会使计算机变得不稳定,并且可能需要强制关闭进程才能恢复正常操作。因此,请小心使用这种无限循环。
相关问题
Java实现一个无限循环的程序,它会不断的分配内存,快速耗尽系统内存
以下是Java实现一个无限循环的程序,它会不断的分配内存,快速耗尽系统内存的代码:
```java
public class MemoryEater {
public static void main(String[] args) {
while(true) {
byte[] bytes = new byte[1024*1024];
}
}
}
```
这个程序会不断地创建大小为1MB的byte数组,由于循环没有结束条件,所以程序会一直运行下去,不断地分配内存,直到系统内存被耗尽。
java for循环内存溢出
Java中,如果在for循环中不断地创建对象而不及时释放,就可能导致内存溢出。比如以下代码:
```
List<Object> list = new ArrayList<>();
for (int i = 0; i < Integer.MAX_VALUE; i++) {
list.add(new Object());
}
```
在这个例子中,for循环会一直执行下去,不断地往List中添加Object对象,直到内存耗尽。解决这个问题的办法是在循环内部及时释放不再需要的对象,或者使用更高效的数据结构来代替List。