JVM之卡表(Card Table)
我们知道,JVM在进行垃圾收集时,需要先标记所有可达对象,然后再清除不可达对象,释放内存空间。那么,如何快速的找到所有可达对象呢?
最简单粗暴的实现,就是每次进行垃圾收集时,都对整个堆中的所有对象进行扫描,找到所有存活对象。逻辑是简单,但性能比较差。 … [阅读文章]
聊技术聊人生
我们知道,JVM在进行垃圾收集时,需要先标记所有可达对象,然后再清除不可达对象,释放内存空间。那么,如何快速的找到所有可达对象呢?
最简单粗暴的实现,就是每次进行垃圾收集时,都对整个堆中的所有对象进行扫描,找到所有存活对象。逻辑是简单,但性能比较差。 … [阅读文章]
HotSpot共有7种垃圾收集器,3个新生代垃圾收集器,3个老年代垃圾收集器,以及G1,一共构成7种可供选择的垃圾收集器组合。
新生代与老年代垃圾收集器之间形成6种组合,每个新生代垃圾收集器都对应2种组合。
Serial Old(MSC)可以与所有新生代收集器进行组合,共3种组合 … [阅读文章]CMS收集器的主要设计目标是:低应用停顿时间。它通过两种方式实现这一目标:
不压缩老年代,而是使用空闲列表来管理回收空间。 大部分标记清理工作与应用程序并发执行。主要问题:由于不压缩带来的老年代堆碎片,或者在对象分配率高的情况下,都可能导致Full … [阅读文章]
万丈高楼平地起,正所谓地基打得好,百年不会倒。
计算机程序如同高楼的建造,也是要先打好地基,再一层层往上盖。
程序是由数据结构和算法组成的,核心是数据结构和算法。
本篇我们要总结的,是二叉树这种数据结构的遍历方式,提供一些基本的模板,以便随时查阅与套用,快速的搭建程序。 … [阅读文章]
学习JVM虚拟机是一个比较枯燥无味的过程,刚开始基本是看不懂学不懂,然后就是似懂非懂,最后觉得好像懂了一些,到后来又觉得还是没懂,反正就是懵懵懂懂,过目就忘,一问就卡住,说也说不清,其实说的就是我自己。
我觉得在学习了相关理论知识之后,除了进行实操之外,通过提问和回答的方式,也能更好的理解所学知识,并检验自己是否真的理解了。 … [阅读文章]
Returns a count of the number of non-NULL values of expr in the rows retrieved by a SELECT statement. The result is a BIGINT value. … [阅读文章]
RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为磁盘阵列。
磁盘阵列由多块磁盘组成,提供比单块磁盘更高的存储性能和数据冗余。
数据分片/分区存储,提高了读写性能和存储容量,空间利用率为100%。由于无冗余,因此不高可用。 … [阅读文章]
如果你自己或身边有小孩,你会发现,小孩对未曾接触过的东西都会非常好奇,而且时常会问为什么,这是我们认识世界的方式。
随着年龄的增长,日常的东西见多了,好奇心也会随之减弱,能激起你好奇心的东西会越来越少。
之所以会出现这种情况,一方面是因为已经习以为常,环境的限制使你很少接触到更新鲜的事物;另一方面是由于人的懒惰,凡事容易浮于表面,体会不到深入了解一件事物之美。 … [阅读文章]