火影推薦程式連載73-記一次使用策略模式優化程式碼的經歷
阿新 • • 發佈:2020-11-21
package JVM; import java.util.ArrayList; import java.util.List; public class test1 { static class OOMObject{} public static void main(String[] args) { List<OOMObject> list = new ArrayList<OOMObject>(); while(true) { list.add(new OOMObject()); } } }
java.lang.OutOfMemoryError: Java heap space Dumping heap to java_pid17800.hprof ... Heap dump file created [13098631 bytes in 0.028 secs] Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.util.Arrays.copyOf(Unknown Source) at java.util.ArrayList.grow(Unknown Source) at java.util.ArrayList.ensureExplicitCapacity(Unknown Source) at java.util.ArrayList.ensureCapacityInternal(Unknown Source) at java.util.ArrayList.add(Unknown Source) at JVM.test1.main(test1.java:13)
package JVM; import java.util.ArrayList; import java.util.List; /* * VM Args: -Xss128k */ public class test1 { private int stackLength = 1; public void stackLeak() { stackLength++; stackLeak(); } public static void main(String[] args) { test1 oom= new test1(); try { oom.stackLeak(); }catch(Throwable e) { System.out.println("stack length:" + oom.stackLength); throw e; } } }
stack length:990 Exception in thread "main" java.lang.StackOverflowError at JVM.test1.stackLeak(test1.java:13) at JVM.test1.stackLeak(test1.java:14) at JVM.test1.stackLeak(test1.java:14) at JVM.test1.stackLeak(test1.java:14) at JVM.test1.stackLeak(test1.java:14) at JVM.test1.stackLeak(test1.java:14) ...