Java is a simple,robust,distributed,platform independent, more powerful, secure, high performance, multithreaded programming language. Here we discuss some points related to Java.
javac: javac is the primary Java compiler included in the Java Development Kit (JDK) from Oracle Corporation. The compiler accepts source code conforming to the Java language specification (JLS) and produces bytecode conforming to the Java Virtual Machine Specification (JVMS).
Byte code: Byte code is the set of optimized instructions generated during compilation phase and it is more powerful than ordinary pointer code.
JVM (Java Virtual Machine): jvm is an abstract machine and set of programs. It is a specification that provides runtime environment in which java bytecode can be executed.
jvm converts byte code into a native understanding form of operating system. The Java language is one of the compiled and interpreted programming language.
JVMs are available for many hardware and software platforms. JVM, JRE and JDK are platform dependent because configuration of each OS differs. But, Java is platform independent.
The JVM performs following main tasks:
- Loads code
- Verifies code
- Executes code
- Provides runtime environment
JRE: The Java Runtime Environment (JRE) is part of the Java Development Kit (JDK). It contains a set of libraries and tools for developing Java application. The Java Runtime Environment provides the minimum requirements for executing a Java application.
JDK: JDK is an acronym for Java Development Kit.It physically exists.It contains JRE + development tools. The Java Development Kit (JDK) is a software development environment used for developing Java applications and applets. It includes the Java Runtime Environment (JRE), an interpreter/loader (java), a compiler (javac), an archiver (jar), a documentation generator (javadoc) and other tools needed in Java development.
Garbage Collector:The Garbage Collector is the system Java program which runs in the background along with a regular Java program to collect un-Referenced (unused) memory space for improving the performance of our applications.
JIT Compiler: The JIT compiler is enabled by default, and is activated when a Java method is called. The JIT compiler compiles the bytecodes of that method into native machine code, compiling it “just in time” to run. When a method has been compiled, the JVM calls the compiled code of that method directly instead of interpreting it. A JIT has access to dynamic runtime information whereas a standard compiler doesn’t and can make better optimizations like in lining functions that are used frequently.
Post written by: Dharmesh Mourya