package jvm;
import java.lang.reflect.Method;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
/**
* -XX:PermSize=10M -XX:MaxPermSize=10M
* @author gsdhaiji
*
*/
public class JavaMethoAreaOOM {
public static void main(String[] args) {
int i = 1;
while(true) {
Enhancer enhance = new Enhancer();
enhance.setSuperclass(OOMObject.class);
enhance.setUseCache(false);
enhance.setCallback(new MethodInterceptor() {
@Override
public Object intercept(Object arg0, Method arg1, Object[] arg2,
MethodProxy arg3) throws Throwable {
System.out.println("before invoke method" + arg1);
Object obj = arg3.invokeSuper(arg0, arg2);
System.out.println("after inovke method" + arg1);
return obj;
}
});
OOMObject obj = (OOMObject)enhance.create();
obj.sayHello();
}
}
static class OOMObject {
public void sayHello() {
System.out.println ("say: hello!");
}
}
}
使用字节码技术,来增加类,jvm保证方法区可以动态加载这些类到内存
分享到:
相关推荐
JAVA内存溢出问题总结 JAVA 内存溢出问题是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用的内存大于虚拟机能提供的最大内存。内存溢出问题可以从容器和程序类两个方面进行排查,容器问题...
JAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.doc
java内存泄露、溢出检查方法和工具。 步骤: 1,使用linux命令生存堆栈文件 2,用MemoryAnalyzer.exe工具打开 3,根据工具生成的饼状图可以清晰的找出内存泄漏源
Java中OutOfMemoryError(内存溢出)的三种情况及解决办法
【Java面试题】Java内存溢出
Java内存溢出解决办法 加大Tomcat使用Jvm内存(转载) 注重版权 Caused by: java lang OutOfMemoryError: Java heap space 错误原因及解决方法
完美解决java读取excel内存溢出问题,希望可以帮到大家
java 内存溢出分析工具 HeapAnalyzer
Java内存溢出的详细解决方案 Java内存溢出的详细解决方案
Java内存溢出解决办法,很普遍的问题,希望能有所帮助。
kettle内存溢出(Java heap space)以及解决方法
tomcat内存溢出处理方法适用于java,开发工具myeclipse或eclipse
该文档详细描述了,内存溢出各种问题和解决方案,适合学习!
java解决大批量数据导出Excel产生内存溢出的方案
软件开发 数据库 内存泄露 内存溢出
Java内存溢出问题
解决java内存溢出解决方法,请认真读哦
Tomcat内存溢出之解决方法 Tomcat内存溢出是指Tomcat服务器在处理大数据量时出现的内存溢出错误,导致系统崩溃或返回HTTP状态码500的错误页面。本文将详细介绍Tomcat内存溢出之解决方法,包括问题分析、解决方法和...
java 内存溢出分析工具 CoreAnalyzer
Java内存溢出之PermGen_OOM