Update: I've made several edits to the post since Aleksey Shipilëv was kind enough to suggest many corrections and improvements. If you closely follow JVM development scene, you've probably noticed that the last few years have been a renaissance of Java garbage collectors. From G1 finally becoming a default garbage collector in Java 9 and onward, to Oracle's ZGC which takes inspiration from Azul's