http://fullstackprep.dev/articles/webd/java/different-memory-areas-in-jvm