
EXPLAIN JDK ;
> A like ,JDK is Java Development Kit which includes all the tools.
> executable and binaries required to compile, debug and execute a Java Program.
> JDK is platform dependent i.e there is separate installers for Windows, Mac, and Unix systems.
> JDK includes both JVM and JRE and is entirely responsible for code execution.
> It is the version of JDK which represent version of Java.
EXPLAIN JRE ;
>Another one,JRE is Java runtime environment which is the implementation of JVM .
> the specifications which are defined in JVM are implemented and creates corresponding environment for the execution of code.
> JRE comprises mainly java binaries and other classes to execute the program .
> A like of JVM it physically exists. Along with Java binaries JRE also consist of various technologies of deployment.
> user interfaces to interact with code executed, some base libraries for different functionalities and language and util based libraries.
EXPLAIN JVM ;
> Another one, Java virtual machine which is basically specification that provides a runtime environment .
> In which Java byte code can be executed .
> it is something which is abstract and its implementation is independent .
> the algorithm and has been provided by Sun and other companies.
> It is JVM which is responsible for converting Byte code to the machine specific code.
> It can also run those programs which are written in other languages and compiled to Java bytecode.
> The JVM performs the mentioned tasks: Loads code, Verifies code, Executes code, Provides runtime environment.

JVM ARCHITECTURE ;
# CLASS LOADER ;
> Classloader is a subsystem of JVM which is used to load class files.
> Whenever we run the java program, it is loaded first by the classloader.
1. BOOTSTRAP CLASS LOADER
2. EXTENSION CLASS LOADER
3. SYSTEM CLASS LOADER
METHOD AREA ;
> Class(Method) Area stores per-class structures.
> such as the runtime constant pool, field and method data, the code for methods.
HEAP ;
>It is the runtime data area in which objects are allocated [Created].
STACK ;
> It holds local variables and partial results, and plays a part in method invocation and return.
> Each thread has a private JVM stack, created at the same time as thread.
> A new frame is created each time a method is invoked.
> A frame is destroyed when its method invocation completes.
PROGRAM COUNTER RESISTER ;
> PC… (program counter) register contains the address of the Java virtual machine instruction currently being executed.
NATIVE METHOD STACK ;
>It contains all the native methods used in the application.
EXECUTION ENGINE ;
> virtual processor.
> Interpreter Read bytecode stream then execute the instructions.
JUST IN TIME ;
> JIT compiler ,It is used to improve the performance.
> JIT compiles parts of the byte code that have similar functionality at the same time.
> And hence reduces the amount of time needed for compilation.
> Here, the term “compiler” refers to a translator.
> the instruction set of a Java virtual machine (JVM) to the instruction set of a specific CPU.
JAVA NATIVE INTERFACE ;
> Java Native Interface (JNI) is a framework.
> which provides an interface to communicate with another application written in another language .
> A like C, C++, Assembly etc.
> Java uses JNI framework to send output to the Console or interact with OS libraries.