Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers “write once, run anywhere” (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. Java applications are typically compiled to bytecode (class file) that can run on any Java virtual machine (JVM) regardless of computer architecture. In this post, we’ll see the basic five phase of Java program life cycle.
The heart of the Java platform is the concept of a “virtual machine” that executes Java bytecode programs. This bytecode is the same no matter what hardware or operating system the program is running under. There is a JIT (Just In Time) compiler within the Java Virtual Machine, or JVM. The JIT compiler translates the Java bytecode into native processor instructions at run-time and caches the native code in memory during execution.
The use of bytecode as an intermediate language permits Java programs to run on any platform that has a virtual machine available. The use of a JIT compiler means that Java applications, after a short delay during loading and once they have “warmed up” by being all or mostly JIT-compiled, tend to run about as fast as native programs.
Primary goals in the creation of the Java language
- It should be “simple, object-oriented and familiar”
- It should be “robust and secure”
- It should be “architecture-neutral and portable”
- It should execute with “high performance”
- It should be “interpreted, threaded, and dynamic”