写一个程序让jvm栈溢出
根据jvm的原理,栈中存放的是方法,因此我们一直创建方法下去,栈内存会溢出。这里我想到的是递归不停止,栈空间肯定会溢出,我们用try-catch看递归调用几次。
package cn.itcast.test;
import org.junit.Test;
public class stackyichu {
int a=0;
private void add(){
a++;
add();
}
@Test
public void test(){
try {
add();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("递归调用"+a);
}
}
}
程序运行结果
写一个程序让OOM
创建一个 ArrayList,while一直添加数字
package cn.itcast.test.lock;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
public class omm {
@Test
public void test(){
List<Integer> list =new ArrayList<>();
int i=0;
int count=0;
try {
while (i<10){
list.add(i);
count++;
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
System.out.println("添加了"+count+"次");
}
}
}