JVM Internals
JVM stands for Java Virtual Machine. Every Java application runs in its own JVM. It is an engine that runs java applications. JVM is a part of JRE (Java Runtime environment). So on any machine where JRE is installed, we can run java applications. The following shows the architecture diagram of the JVM : JVM has the following areas : 1. ClassLoader subsystem 2. Runtime data area (memory area) 3. Execution engine 4. Native method interface 1. ClassLoader subsytem Classloader is responsible for loading, linking and initialization of the classes. a. Loading involves reading class files and store corresponding data in method area. For each class file, JVM stores fully qualified classname, fully qualified parent class name, constructor info, method info, variable info, constants info, modifiers info, etc. After loading .class files, JVM immediately creates an object for that loaded class on the heap area of the type java. lang.Class. The Class class object can be used