无聊时发现的一个问题,请教高手解答!!!!
- Java code
public class TestStack { public static void main(String[] args) { Deque<String> st = new ArrayDeque<String>(); int in=1000; int temp=in; while(temp>0){ st.push("1");//这个地方报 java.lang.OutOfMemoryError: Java heap space temp=in/2; } Iterator<String> itr=st.descendingIterator(); while(itr.hasNext()){ System.out.println(itr.next()); } }}
[解决办法]
while(temp>0)
死循环啊,当然会报内存溢出了。
[解决办法]
temp第一次1000
然后一直是1000/2=500,
都>0,死循环了。
[解决办法]
在这里1/2=1
所以以后一直都是1。循环结束不了。
[解决办法]
你这里变量in是多余的。可以改成
- Java code
public static void main(String[] args) { Deque<String> st = new ArrayDeque<String>(); int temp = 1000; while (temp > 0) { st.push("1"); temp /= 2; } Iterator<String> itr = st.descendingIterator(); while (itr.hasNext()) { System.out.println(itr.next()); } }
[解决办法]
[解决办法]
[解决办法]
temp=in/2 改为: temp=temp/2 否则:2楼正解。
[解决办法]
我还以为是啥,结果......粗心写成了死循环。