摘要:
有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 50 1240 Abraham Lincoln High School 70 35 1241 Ac 阅读全文
摘要:
什么是CMS? Concurrent Mark Sweep。 看名字就知道,CMS是一款并发、使用标记-清除算法的gc。 CMS是针对老年代进行回收的GC。 CMS有什么用? CMS以获取最小停顿时间为目的。 在一些对响应时间有很高要求的应用或网站中,用户程序不能有长时间的停顿,CMS 可以用于此场 阅读全文
摘要:
不要超过32G 事实上jvm在内存小于32G的时候会采用一个内存对象指针压缩技术。 在java中,所有的对象都分配在堆上,然后有一个指针引用它。指向这些对象的指针大小通常是CPU的字长的大小,不是32bit就是64bit,这取决于你的处理器,指针指向了你的值的精确位置。 对于32位系统,你的内存最大 阅读全文
摘要:
1对象存活算法引用计数法 简介:判断对象是否存活算法,讲解对象垃圾回收对象是否回收判断 - 引用计数法存在的特点分析 - 优缺点 * 引用计数收集器可以很快的执行,交织在程序运行中。对程序需要不被长时间打断的实时环境比较有利。 * 无法检测出循环引用。如父对象有一个对子对象的引用,子对象反过来引用父 阅读全文
摘要:
integer1=i, 编译后自动装箱:integer1=Integer.valueOf(i),Integer的内部类IntegerCache默认缓存了[-128,127] 阅读全文
摘要:
JVM的知识这里总结的很详细:https://github.com/doocs/jvm/blob/master/README.md,因此在本博客也不会再对其中的东西重复总结了。 现在很多文章关于JVM内存结构的说法模糊不清,这里记录一下以前的一些比较模糊的JVM相关概念的重新认识。都是经过多处考证对 阅读全文
摘要:
在运用CAS做Lock-Free操作中有一个经典的ABA问题: 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如 阅读全文
摘要:
-XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式) -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53: 阅读全文
摘要:
参数 描述 UseSerialGC 虚拟机运行在Client模式的默认值,打开此开关参数后, 使用Serial+Serial Old收集器组合进行垃圾收集。 UseParNewGC 打开此开关参数后,使用ParNew+Serial Old收集器组合进行垃圾收集。 UseConcMarkSweepGC 阅读全文
摘要:
这个问题的答案取决于JDK版本,在2012年默认值改变过一次。 请参考:JDK-6679764: enable parallel compaction by default这个改进使得HotSpot VM在选择使用ParallelGC(-XX:+UseParallelGC 或者是ergonomics 阅读全文