https://medium.com/@b.stoilov/everything-you-need-to-know-about-the-java-garbage-collector-8537459bf1a2