这篇我们学习下jvm的clone实现,具体实现在jvm.cpp中: clone方法主要是复制对象,当然只是浅拷贝。里面一些方法等处理不清楚原因,...
在垃圾回收中,经常会STW,为了首先STW,jvm设计了安全点(safepoint)。那么什么是安全点?线程什么时候进入和离开安全点呢? 安全点...
字符串去重是G1引入的新特性,在我们日常开发中,字符串基本上是使用最多的类型。而String对象是不可变的,通常会消耗大量的内存,这里面有一部分...
混合GC(Mixed GC):既收集年轻代,也收集老年代。不同于YGC,涉及老年代回收时,引入了并发标记。并发标记指的是GC线程可以和Mutat...
在内存分配的时候,如果剩余空间不能满足分配的对象就会触发YGC。G1每次都会收集所有的新生代的分区,但新生代分区的数目每次可能是不一样的,这是因...
RSet和卡表 试想一下,当在ygc时,我们需要扫描整个新生代。当新生代的对象被老年代引用,则此对象就不能回收。那么怎么判断这点呢,总不能扫描老...
上文分析了Java类的加载过程,那么Java对象的创建过程是什么样呢? 以上为例,看下new关键字在底层是怎么实现的。new关键字实现在Inte...
环境 本系列学习笔记基于openjdk-8u60版本 OOP-Klass二分模型 Hotspot基于C++实现,而C++本身也是一门面向对象的语...
这段时间在公司搞序列化相关的优化,这里做下笔记吧。 项目背景 项目采用dubbo(版本不自带protostuff序列化),接口参数为byte[]...