在JDK1.6下,模仿堆、栈、永久代溢出

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.sun.org.apache.bcel.internal.util.ClassLoader;

public class OutOfMemoryTest {
	
	/**
	 * @param args
	 * 在JDK1.6下,模仿堆、栈、永久代溢出
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
//		heapTest();
//		permGenTest();
		stackTest();
	}
	//堆溢出,堆存放对象实例
	public static void heapTest(){
		List list = new ArrayList();
		int i=0;
		while(true){
			list.add(i++); 
		}
	}
	//永久代溢出,JDK8已经溢出永久代。永久代存放class,常量池等
	public static void permGenTest(){
		String str = "s";
		while(true){
			str = str+str;
			str.intern(); //在常量池中查找是否有该字符串,有就返回引用,没有的话加入常量池,返回引用
		}
	}
	//栈溢出,栈存放方法中局部变量和对象引用。
	public static void stackTest(){
		int value = 0;
		value++;
		stackTest(); //无限递归,局部变量无限增加
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值