gpt4 book ai didi

Java do while循环数组列表问题

转载 作者:行者123 更新时间:2023-12-01 19:19:21 25 4
gpt4 key购买 nike

我想问为什么执行“NAME.add(“Tom”);”时会触发Java堆空间?

<%@ page import="java.util.*" %>

<%
try {
ArrayList <String> NAME = new ArrayList<String>();
int count= 0;

do
{
NAME.add("Tom");
} while ( count < 2);

String[] name = NAME.toArray(new String[NAME.size()]);

%>

<script type="text/javascript">
var output=[];
<%int i = 0;%>

<%while ( i < name.length ) { System.out.println(name[i]);%>
output[<%=i%>] = [];
output[<%=i%>][0] = '<%=name[i]%>';

<% System.out.println("No exception in JAVASCRIPT.");i++;}%>
</script>

<%
} catch (Exception error ){System.out.println(error);}%>

最佳答案

请注意,在此代码中:

int count= 0;

do
{
NAME.add("Tom");
} while ( count < 2);

您永远不会在任何地方更改 count 的值,因此此循环将永远循环。如果您更改代码,以某种方式更改 count (可能通过使用 for 循环向上计数),这种情况应该消失。由于向集合中添加了尽可能多的 Tom 副本,JVM 可能会耗尽堆空间,最终耗尽可用内存。

关于Java do while循环数组列表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5048664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com