zoukankan      html  css  js  c++  java
  • Java VM(虚拟机) 参数

    • -XX:PermSize/-XX:MaxPermSize,永久代内存;

    1. 虚拟机参数:-ea,支持 assert 断言关键字

    eclipse 默认是不开启此参数的,也就是虽然编译器支持 assert 关键字,但并不起作用,需要为虚拟机的默认参数中增加此配置选项:

    • 【Window】⇒ 【Preferences】⇒ 【Java】⇒ 【Installed JREs】
    • 右侧对点中待配置参数的JREs,对其进行编辑:

    如下图所示:



    2. Java 堆溢出

    Java 堆用于存储对象实例(new),因此只要不断地创建对象,且保证 GC Roots 到对象之间有可达路径以避免垃圾回收机制清除这些对象,那么对象数量到达最大堆(-Xmx)的容量限制后,就会产生内存溢出异常:

    • 限制 Java 堆的大小为 20M,且不可扩展:-Xms20m -Xmx20m
      • 将最小值 -Xms 参数与最大值 -Xmx 参数设置为一样便可避免 Java 堆的自动拓展;
    • -XX:+HeapDumpOnOutOfMemoryError,可让虚拟机在出现内存溢出异常时,Dump 出当前的内存堆转储快照以便进行定位分析:
    /**
    * VM args:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
    */
    public class HeapOOM {
        static class OOMObject {
        }
        public static void main(String[] args) {
            List<OOMObject> list = new ArrayList<OOMObject>();
            int counter = 0;
            while (true) {
                list.add(new OOMObject());
                System.out.println("counter = " + (++counter));
            }
        }
    }

  • 相关阅读:
    JdbcTemplate
    Spring AOP——基于XML的进阶案例
    Spring
    面试题
    切面编程
    选择题
    Spring核心概念
    缓存
    BFC 神奇背后的原理
    git 教程
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421060.html
Copyright © 2011-2022 走看看