
JVM虚拟机专栏
weixin_40161962
111
展开
-
JVM之G1垃圾收集器
以前收集器的特点 年轻代和老年代是各自独立且连续的内存块 年轻代收集器使用 eden + S0 + S1 进行复制算法 老年代收集必须扫描整个老年代区域 都是以尽可能的少而快速地执行 GC 为设计原则 G1 是什么 G1 是一种面向服务端的垃圾收集器,应用在多核处理器和大容量内存环境中,在实现高吞吐量的同时,尽可能的满足垃圾收集器的暂停时间要求。特性: 像CMS收集器一样,能与应用程序并发执行。 ...原创 2019-11-10 00:50:48 · 186 阅读 · 0 评论 -
JVM之GC垃圾回收器4+4+7
GC算法四种 (思想) 引用计数 废弃 复制拷贝 新生代 标记清除 老年代 标记整理 老年代 GC 算法是内存回收的方法论,垃圾收集其就是算法的落实的实现。 目前为止还没有完美的收集器的出现,更加没有万能的收集器,只是针对具体应用最适合的收集器,进行分代收集。 Gc垃圾回收器 (落地实现) 串行垃圾回收器(Serial) 它为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线...原创 2019-11-09 23:46:00 · 215 阅读 · 0 评论 -
JVM之oom
请谈谈你对 OOM 的认识? java.lang.StackOverflowError 比如递归出口没写对,一直调用自己就会出现这个错误。 java.lang.OutOfMemoryError : Java heap space new 一个很大对象 java.lang.OutOfMemoryError : GC overhead limit exceeded 98%的时间用来做GC,回收了不到2...原创 2019-11-08 23:46:59 · 207 阅读 · 0 评论 -
java四种引用,WeakHashMap和引用队列
强引用、软引用、弱引用和虚引用分别是什么? 在Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。 强引用 特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运行时错误(...原创 2019-11-08 18:30:31 · 203 阅读 · 0 评论 -
JVM参数与调优
JVM 的参数类型 标配参数 -version -help X 参数(了解) -Xint:解释执行 -Xcomp:第一次使用就编译成本地代码 -Xmixed:混合模式 XX 参数 Boolean 类型:-XX:+ 或者 - 某个属性值(+ 表示开启,- 表示关闭) -XX:+PrintGCDetails:打印 GC 收集细节 -XX:-PrintGCDetails:不打印 GC 收集细节 -XX:...原创 2019-11-08 14:40:09 · 183 阅读 · 0 评论 -
判断一个对象是否可被回收
1. 引用计数算法 为对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的对象可被回收。 在两个对象出现循环引用的情况下,此时引用计数器永远不为 0,导致无法对它们进行回收。正是因为循环引用的存在,因此 Java 虚拟机不使用引用计数算法。 public class Test { public Object instance = null; pub...原创 2019-11-08 14:33:12 · 151 阅读 · 0 评论