Java深入---Java堆溢出以及垃圾回收机制

来源:互联网 发布:太阳光谱数据在哪有 编辑:程序博客网 时间:2024/05/27 18:17
</pre><pre name="code" class="java">import java.util.ArrayList;import java.util.List;/** * @author MohnSnow * @time 2015年5月27日 下午5:39:17 * *//* * 测试Java堆溢出 *  * JVM-SET: -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails * -XX:SurvivorRatio=8 * OOM: OutOfMemoryError */public class Test {static class OOMObject {static {System.out.println("test;");}}public static void main(String[] args) {List<OOMObject> list = new ArrayList<OOMObject>();while (true) {list.add(new OOMObject());}}}

/** * @author MohnSnow * @time 2015年5月28日 上午10:39:17 *  *//* * 垃圾回收机制中的引用记数算法:给对象添加一个引用计数器,每当一个地方引用他时,计数器就加一;当引用失效时候,就减一;任何时刻计数器为零的对象,就是不可能在被使用的 * 。 */public class Test {public Object instance = null;private static final int _1MB = 1024 * 1024;public byte[] bigSize = new byte[2 * _1MB];public static void testGC() {Test objA = new Test();Test objB = new Test();objA.instance = objB;objB.instance = objA;objA = null;objB = null;System.gc();}public static void main(String[] args) {testGC();}}


0 0
原创粉丝点击