JAVA内存溢出详解.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档