总结《深入理解JVM》 G1 篇 Java

总结《深入理解JVM》 G1 篇

注:一下内容主要结合《深入理解JVM》3th总结而来。 接上一篇,我们来说说 G1 , G1 作为现在的主要的 JVM GC ,被作为各大互联网主要使用的垃圾回收器,了解 G1 回回收原理和回收过程,才能帮组我们更好的定位问题,解决问题。 -XX:+UseG1GC 开启 G1 GC G1内存划分 G1 看起来和 CMS 比较类似,但是实现上有很大的不同。 传统分代...
阅读全文
G1理论基础与经验分享 Java

G1理论基础与经验分享

​ 关于G1收集器的收集过程,看过一些博客和书,基本上十有八九都说的不一样,如果要确定哪个是正确的还是得去看实现代码。当然我不打算去学C语言看代码了,接下来就结合自己的理解和资料来介绍G1收集器收集过程,力求做到初次接触G1也能看明白。 ​ G1可以说是个里程碑式的产品,从提出到正式商业使用几乎用了差不多10年,与之前的垃圾收集器相比有着明显的区别。比如它可以进行新时代和老年代的收集,而其他的...
阅读全文
面试【JAVA基础】JVM Java

面试【JAVA基础】JVM

1、内存模型 1.1、堆 堆是所有线程共享的,主要存放对象实例和数组。 新生代和老年代的比例是1:2。 新生代中三个区域的比例是 8 : 1 : 1。 1.1.1、新生代 对象分配在eden区中,当eden区满时会触发minor gc,将eden区中存活的对象,复制到survivor0区中,清空eden区,当survivor0中满了时,会将存活的对象复制到...
阅读全文
认识JVM的内存分配 Java

认识JVM的内存分配

当我们在JVM中运行一段程序代码,JVM初始运行的时候都会分配好 Method Area(方法区)和Heap(堆) ,而JVM每遇到一个线程,就为其分配一个Program Counter Register(程序计数器), VM Stack(虚拟机栈)和Native Method Stack (本地方法栈),当线程终止时,三者(虚拟机栈,本地方法栈和程序计数器)所占用的内存空间也会被释放掉。 ...
阅读全文
Java并发指南14:Java并发容器ConcurrentSkipListMap与CopyOnWriteArrayList Java

Java并发指南14:Java并发容器ConcurrentSkipListMap与CopyOnWriteArrayList

原文出处 http://cmsblogs.com/ 『 chenssy 』 到目前为止,我们在Java世界里看到了两种实现key-value的数据结构:Hash、TreeMap,这两种数据结构各自都有着优缺点。 Hash表:插入、查找最快,为O(1);如使用链表实现则可实现无锁;数据有序化需要显式的排序操作。 红黑树:插入、查找为O(logn),但常数项较小;无锁实现的复杂性很...
阅读全文
又来了,新鲜出炉的JVM实战【 30问30答】! Java

又来了,新鲜出炉的JVM实战【 30问30答】!

首先,给大家推荐一套质量极高的Java面试训练营课程: 作者是中华石杉,石杉老哥是我之前所在团队的 Leader ,骨灰级的技术神牛! 大家可以扫描下方二维码,了解更多详情,并进行 试听 ,另外文末附上了 详细目录 ,请大家自提: 我的推荐理由: 我自己一直在一线互联网公司工作,也有多年的面试官经验。 从我多年的经验来看,面试大厂的Java兄弟, 9...
阅读全文
什么情况会出现Full GC,什么情况会出现yong GC? 编程技术

什么情况会出现Full GC,什么情况会出现yong GC?

文章要求读者熟悉 JVM 内置的通用垃圾回收原则。堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,代假设和其他不同的 GC 算法超出了本文讨论的范围。 一,jvm什么时候会触发full gc 1、System.gc()方法的调用 此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的...
阅读全文
Loading...