Java Hotspot G1 GC

Garbage-First(G1) 垃圾收集器(Garbage Collector) 针对具有大量内存的多处理器机器。它试图以高概率满足垃圾收集暂停时间目标,同时在几乎不需要配置的情况下实现高吞吐量。G1 旨在使用当前目标应用程序和环境提供延迟和吞吐量之间的最佳平衡。

通过 -XX:+UseG1GC 参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 248)。

JVM 提供的年轻代回收算法属于复制算法,CMS、G1,ZGC属于标记清除算法。

Java 中的锁

Java锁使用 在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而JavaSE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功能,只是在使用时需要显式地获取和释放锁。

数据结构 - 二叉树

在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(即不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”或“右子树”。二叉树的分支具有左右次序,不能随意颠倒。

CMS GC

Concurrent Mark Sweep (CMS) 收集器是为喜欢更短的垃圾收集暂停并且能够在应用程序运行时与垃圾收集器共享处理器资源的应用程序而设计的。

通常,具有相对较大的长期数据集(大型老一代)并在具有两个或更多处理器的机器上运行的应用程序往往会从使用此收集器中受益。CMS 收集器通过命令行选项启用 -XX:+UseConcMarkSweepGC

Mark Sweep 指的是标记 - 清除算法。

JVM 垃圾回收(GC)

在计算机科学中,垃圾回收(英语:Garbage Collection,缩写为GC)是指一种自动的存储器管理机制。当某个程序占用的一部分内存空间不再被这个程序访问时,这个程序会借助垃圾回收算法向操作系统归还这部分内存空间。垃圾回收器可以减轻程序员的负担,也减少程序中的错误。垃圾回收最早起源于LISP语言。目前许多语言如Smalltalk、Java、C#、Go和D语言都支持垃圾回收器。

内省 JavaBeans Introspector

在计算机科学中,内省是指计算机程序在运行时(Runtime)检查对象(Object)类型的一种能力,通常也可以称作“运行时类型检查"。

不应该将内省和反射混淆。相对于内省,反射更进一步,是指计算机程序在运行时(Runtime)可以访问、检测和修改它本身状态或行为的一种能力。

CompletableFuture

CompletableFuturejava.util.concurrent 库在java 8中新增的主要工具,同传统的 Future 相比,其支持流式计算、函数式编程、完成通知、自定义异常处理等很多新的特性。由于函数式编程在java中越来越多的被使用到,熟练掌握 CompletableFuture ,对于更好的使用java 8后的主要新特性很重要。