- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA内存溢出详解
一 调整 虚拟机参数 二 立即 释放无用的对象 三 利用序列化和反序列化技术 下面是具体的代码实现 package com.free; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; /** * @author free * springcomingagain@ */ public class OutMemorySolution { /*** * Change JVM Arguments * 调整 虚拟机参数 * * * * First Try * * -Xloggc:gc.log * -Xms256M * -Xmx256M * * throw java.lang.OutOfMemoryError: Java heap space * * * Second Try * * -Xloggc:gc.log * -Xms512M * -Xmx512M * * */ public static void changeJVMArguments() { long startTime = System.currentTimeMillis(); System.out.println(Start : + startTime); List list = new ArrayList(0); for (int i = 0; i 5000000; i++) { list.add(new BigInteger(1000000)); } long endTime = System.currentTimeMillis(); System.out.println(End.. : + endTime + Cost : + (endTime - startTime)); } /** * Release Object Immediate * 立即 释放无用的对象 * * * Release Object * * * //First Release Object * BigInteger temp1 = null; * for (int i = 0; i 1200000; i++) { * temp1 = array1[i]; * temp1 = null; * array1[i] = null; * } * array1 = null; * ... * //Second Release Object * temp1 = null; * for (int i = 0; i 1200000; i++) { * temp1 = array2[i]; * temp1 = null; * array2[i] = null; * } * array2 = null; * * */ public static void releaseObjectImmediate() { long startTime = System.currentTimeMillis(); System.out.println(First Start : + startTime); BigInteger[] array1 = new BigInteger[1200000]; for (int i = 0; i 1200000; i++) { array1[i] = new BigInteger; } // First Release Object BigInteger temp1 = null; for (int i = 0; i 1200000; i++) { temp1 = array1[i]; temp1 = null; array1[i] = null;
文档评论(0)