JAVA内存溢出详解
发布时间:2023-04-10 01:03:20 来源:文档文库
小
中
大
字号:
一调整虚拟机参数二立即释放无用的对象三利用序列化和反序列化技术下面是具体的代码实现packagecom.free;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.math.BigInteger;importjava.util.ArrayList;importjava.util.List;/***@authorfree*springcomingagain@gmail.com*/publicclassOutMemorySolution{/****ChangeJVMArguments*调整虚拟机参数****FirstTry**-Xloggc:gc.log*-Xms256M*-Xmx256M**throwjava.lang.OutOfMemoryError:Javaheapspace***SecondTry**-Xloggc:gc.log*-Xms512M*-Xmx512M***/publicstaticvoidchangeJVMArguments({longstartTime=System.currentTimeMillis(;
System.out.println("Start:"+startTime;Listlist=newArrayList(0;for(inti=0;i<5000000;i++{list.add(newBigInteger("1000000";}longendTime=System.currentTimeMillis(;System.out.println("End..:"+endTime+"Cost:"+(endTime-startTime;}/***ReleaseObjectImmediate*立即释放无用的对象***ReleaseObject***//FirstReleaseObject*BigIntegertemp1=null;*for(inti=0;i<1200000;i++{*temp1=array1[i];*temp1=null;*array1[i]=null;*}*array1=null;*...*//SecondReleaseObject*temp1=null;*for(inti=0;i<1200000;i++{*temp1=array2[i];*temp1=null;*array2[i]=null;