Java Virtual Machine (JVM)
JVM is a set of computer software programs and data structures which implements a specific Virtual machine model.
JVM is treated as virtual because it is a virtual computer defined by its specification.
All java programs are executed at the runtime through JVM.
At the runtime JVM performs some specific task like
1. Manage the system memory
2. It provides security against malicious code.
3. It manages multiple numbers of threads
Java provides a layer of abstraction between compiled java programs and Operating System.
This model accepts a form of computer intermediate language, commonly known as byte code.
JVM creates a separate block of memory i.e. called string constant pool and store the object there. JVM first checks whether the same object is already available in the string constant pool and if it is available then it creates another reference to it. If the same object is not available then it creates another object with the content "variable name" and stores it into the string constant pool.
If the programmer doesn't declare the package then JVM automatically takes the package name as p1 and by default all the class files are stored in p1.
Exit() is a predefined static method present in System class, used to terminate the currently running JVM.
- Byte code is the form of instructions that the JVM executes at the runtime.
- After the compilation of java source code .class file is created that holds byte code and it is not the machine code for machine but for the JVM.
- Each byte code instructions is one byte in length, thus the number of byte codes is limited to 256.
Life Time of JVM:-
- A runtime instance of JVM will born when .class file starts its execution and the runtime instance of JVM will die when .class file completes its execution. For every .class file, one JVM instance will work.
- Class Loader: It is the sub-system of jvm. When the java source code is successfully compiled by the compiler, then it generates java byte codes .Java bytecode are resides in the .class file. Internally .class file resides in the current working directory .Class loader subsystem takes the copy of the class file and load it in the memory before jvm executes java bytecode. It Loads the .class file into memory and checks the correctness of .class file. It allocates the memory to the static block and static variable. If the static variable is not initialized it assigned the default value to the static variable and the static variable is initialized when the class file loaded in the memory.
- Method Area: It is just a logical memory component of jvm. It holds the information about the class and interface. All the static variable, static block static method resides in the method area ..Size of method area is not fixed because its size depends on the size of application.
- Heap: Heap is another logical memory component used by jvm. When the programmer construct the object through the memory from the heap.
- Java stack: It is another logical component used by jvm. All the local variables or reference or any argument pass by programmer then memory is allocated from the java stack.
- PC register: It is popularly known as program counter register. It holds the address of instructions that to be executed next and it keeps the track of sequential execution of the program.
- Native method Area: When the programmer passes any argument in the native method, then they capture the memory from the native method area.
- Execution engine:- It is treated as a virtual processor and it generates, manage & executes java bytecode.
Java Runtime Environment (JRE)
The JRE is the smallest set of executables and files that constitute the standard java plot form. The Java Runtime Environment (JRE) provides the libraries, the Java Virtual Machine, and other components to run applets and applications written in the Java programming language. In addition, two key deployment technologies are part of the JRE:
Java Plug-in, which enables applets to run in popular browsers; and Java Web Start, which deploys standalone applications over a network.
(a) Java Plug-in : Java Plug-in technology, included as part of the Java Runtime Environment, Standard Edition (Java SE), establishes a connection between popular browsers and the Java platform. This connection enables applets on Web sites to be run within a browser on the desktop.
(b) Java Web Start : Using Java Web Start technology, standalone Java software applications can be deployed with a single click over the network. Java Web Start ensures the most current version of the application will be deployed, as well as the correct version of the Java Runtime Environment (JRE).
Java Development Kit (JDK)
JDK Short for Java Development Kit, a software development kit for Java programming language. The Java Development Kit (JDK) is developed by Sun Microsystem's. it contain JRE(Java Runtime Environment) and development tools