I am trying to understand how JVM works behind the hood so I will have a couple of questions which are really related to each other hence I prefer to ask them all together.