zoukankan      html  css  js  c++  java
  • JVM学习分享-练习题

    package org.fenixsoft.clazz;

    public class TestClass {
    private int m;

    public int inc() {
    return m + 1;
    }
    }


    //----------- javap -verbose TestClass


    package zero.desk.metaspace;

    import org.springframework.cglib.proxy.Enhancer;
    import org.springframework.cglib.proxy.MethodInterceptor;

    /**
    * @author:Zero
    * @Description:
    * @since 2019/6/11.
    * 练习1
    * VM Options:-XX:MetaspaceSize=10M -XX:MaxMetaspaceSize=10M
    */
    public class MetaspaceOutmemory {
    public static void main(String[] args) {
    try {
    System.out.println("MetaspaceOOM.java");
    while (true) {
    Enhancer enhancer = new Enhancer();
    enhancer.setSuperclass(OOMObject.class);
    enhancer.setUseCache(false);
    enhancer.setCallback(
    (MethodInterceptor) (obj, method, args1, methodProxy) -> methodProxy.invokeSuper(obj, args1)
    );
    enhancer.create();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    static class OOMObject {
    }
    }

    //------------------
    package zero.desk.metaspace;

    import java.util.ArrayList;
    import java.util.List;

    /**
    * @author:Zero
    * @Description:
    * @since 2019/6/11.
    * 练习2
    * VM Options:-Xmx1M -Xms1M
    */
    public class StringOutmemory {
    static String base = "string";

    public static void main(String[] args) {
    try {
    Thread.sleep(1000);
    List<String> list = new ArrayList<String>();
    for (int i = 0; i < Integer.MAX_VALUE; i++) {
    String str = base + base;
    base = str;
    list.add(str.intern());
    }
    }catch (Exception e) {
    e.printStackTrace();
    }

    }
    }

    //-------------
    package zero.desk.gc;

    /**
    * @author Zero
    * @since 2019-09-08.
    * Description:使用默认垃圾收集器,Parallel Scavenge + Parallel Old
    * 练习3
    * VM Options:-XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintGCDetails
    */
    public class ReferenceCountingGC {
    public Object instance = null;
    private static final int ONE_MB = 1024 * 1024;

    private byte[] bigSize = new byte[2 * ONE_MB];

    public static void main(String[] args) throws InterruptedException {
    Thread.sleep(1000);
    testGC();
    Thread.sleep(1000);
    }

    public static void testGC() {
    ReferenceCountingGC objA = new ReferenceCountingGC();
    ReferenceCountingGC objB = new ReferenceCountingGC();
    objA.instance = objB;
    objB.instance = objA;

    objA = null;
    objB = null;

    System.gc();
    }
    }

    //-------------
    package zero.desk.gc;

    /**
    * @author Zero
    * @since 2019-09-08.
    * Description:使用CMS收集器,ParNew + CMS
    * 练习4
    * VM Options:-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC
    */
    public class ReferenceCountingGCOpen {
    public Object instance = null;
    private static final int ONE_MB = 1024 * 1024;

    private byte[] bigSize = new byte[2 * ONE_MB];

    public static void main(String[] args) throws InterruptedException {
    Thread.sleep(2000);
    testGC();
    Thread.sleep(1000);
    }

    public static void testGC() {
    ReferenceCountingGCOpen objA = new ReferenceCountingGCOpen();
    ReferenceCountingGCOpen objB = new ReferenceCountingGCOpen();
    objA.instance = objB;
    objB.instance = objA;

    objA = null;
    objB = null;

    System.gc();
    }
    }

    //--------------
    package zero.desk.constantpool;

    /**
    * @author Zero
    * @since 2019-09-08.
    * Description:
    * 练习5
    * javap -verbose ConstantPool
    */
    public class ConstantPool extends C implements A,B{
    private String str = "test string";
    private final int a = 10;
    private final long b = 10;
    private final long bb = 100;
    private int c = 11;
    private float d = 12f;
    private float e = 12f;
    private double ee = 12f;

    private int m;

    public int inc() {
    return m + 1;
    }
    }
  • 相关阅读:
    为图片指定区域添加链接
    数值取值范围问题
    【leetcode】柱状图中最大的矩形(第二遍)
    【leetcode 33】搜索旋转排序数组(第二遍)
    【Educational Codeforces Round 81 (Rated for Div. 2) C】Obtain The String
    【Educational Codeforces Round 81 (Rated for Div. 2) B】Infinite Prefixes
    【Educational Codeforces Round 81 (Rated for Div. 2) A】Display The Number
    【Codeforces 716B】Complete the Word
    一个简陋的留言板
    HTML,CSS,JavaScript,AJAX,JSP,Servlet,JDBC,Structs,Spring,Hibernate,Xml等概念
  • 原文地址:https://www.cnblogs.com/DeskZero/p/11537520.html
Copyright © 2011-2022 走看看