![]() | 1 madNeal 2018-03-20 11:03:48 +08:00 via Android 疯狂占内存 |
2 GuuJiang 2018-03-20 11:04:36 +08:00 via iPhone JNI,然后 native 代码里访问空指针 |
3 notreami 2018-03-20 11:14:17 +08:00 System.exit(1); 非正常推出,不用那么复杂吧? |
![]() | 4 RubyJack 2018-03-20 11:27:00 +08:00 循环里一直 new |
5 lihongjie0209 2018-03-20 11:29:43 +08:00 递归 了解一下 |
6 lihongjie0209 2018-03-20 11:34:26 +08:00 ``` public class test { public static void main(String[] args) { long sum = sum(1, 100000); System.out.println(sum); } public static long sum(int start, int end) { System.out.println("sum is called!!"); if (start == end) { return start; }else{ return sum(start, end - 1) + end; } } } sum is called!! sum is called!! sum is called!! Exception in thread "main" java.lang.StackOverflowError at java.io.PrintStream.write(PrintStream.java:526) at java.io.PrintStream.print(PrintStream.java:669) at java.io.PrintStream.println(PrintStream.java:806) at test.sum(test.java:12) at test.sum(test.java:18) at test.sum(test.java:18) ``` |
![]() | 7 stanjia 2018-03-20 11:36:08 +08:00 楼主想哪 JVM 的哪块儿崩溃? 是栈还是堆,还是其它的常量区? |
![]() | 8 lhx2008 2018-03-20 11:48:24 +08:00 via Android ![]() 栈溢出 无限递归 堆溢出 塞对象过 jvm 内存 max 值 方法区溢出 动态生成类(有点麻烦) |
9 ho121 2018-03-20 12:28:04 +08:00 via Android 1/0 |
![]() | 10 vegito2002 2018-03-20 12:42:15 +08:00 via iPad ![]() 爆栈爆堆这些 exception 不算 crash, 不要混淆这个概念; 这个帖子里有具体的讨论: https://stackoverflow.com/questions/65200/how-do-you-crash-a-jvm |
11 huweic OP @vegito2002 哈哈,我就是看了 stackoverflow 这个问题才发的这个帖子,想跟大家讨论一下 |
14 lovelybear 2018-03-20 13:02:07 +08:00 via Android 死循环 |
15 Len1133 2018-03-20 13:38:31 +08:00 拔插头 |
![]() | 16 qwertty01 2018-03-20 13:56:32 +08:00 如何写个软件让 windows 奔溃? |
![]() | 17 ovear 2018-03-20 14:00:03 +08:00 jni,然后写点越界。 |
18 lastpass 2018-03-20 14:19:02 +08:00 via Android 你可以试着通过 JAVA 调用错误的 dll。 JVM 必崩 为什么我知道? 因为我这里有一个 JAVA 程序就是通过调用 dll 进行授权的。 经常性崩溃。 从头崩到尾。 无论我写啥异常处理办法都没用。 |
![]() | 19 ly529 2018-03-20 15:48:42 +08:00 while(true) |
![]() | 20 Amayadream 2018-03-20 15:55:48 +08:00 @vegito2002 #10 你这个链接有点赛艇 ![]() |
![]() | 22 wweir 2018-03-20 17:54:15 +08:00 via Android 给自己的 pid 发个 kill 信号,算么? |
![]() | 23 Zz0Zz 2018-03-20 18:01:04 +08:00 写个死循环,每次放 1million 大对象,立马把你的 jvm 干爆 |
24 zengmingyang96 2018-03-20 18:10:28 +08:00 via Android @lihongjie0209 这个 error 是可以捕获的 |
25 lihongjie0209 2018-03-20 18:12:47 +08:00 @zengmingyang96 #24 捕获 error 干嘛 |
26 zengmingyang96 2018-03-20 18:15:30 +08:00 @lihongjie0209 如果 try catch 了,JVM 不会崩溃啊。。。 |
![]() | 27 stanjia 2018-03-20 19:32:28 +08:00 这里关键是要 通过 -Xss256m -Xms512m -Xmx800m -XX:MaxPermSize=512m 等,把虚拟机内存设置成 1MB 或者更小,不然,默认设置的情况下,你想让 java 不管哪块儿爆掉 还是有点难 |
28 fork 2018-03-20 19:38:04 +08:00 kill -4 java_process_pid |
![]() | 29 applehater 2018-03-20 20:28:39 +08:00 via iPhone JNA 随便写一下就会错了。 |
![]() | 30 zk123 2018-03-20 21:03:57 +08:00 via Android for(int i=0; i < 3 ; i ++){ System.out.println("我是帅哥"); } |
![]() | 31 opengps 2018-03-21 08:42:56 +08:00 这是要埋个雷,作为后期付费改善功能? |
![]() | 32 owenliang 2018-03-21 10:15:14 +08:00 via Android 递归导致栈溢出最快。 |
34 springGun 2018-03-21 10:38:12 +08:00 实战 java 虚拟机 上全是案例 ,所有你想 OOM 的 JVM 区域都有 |
35 Fri 2018-04-05 21:14:00 +08:00 int[] arr = new int[999999999^999999999]; |