|
What is JVM and JIT?
A
Java Virtual Machine (JVM) is software that acts as an interface
between a Java program that has been compiled into instructions
understood by JVM called “bytecodes” and the OS/processor "hardware
platform", which actually executes the bytecodes after converted “on
the fly” by JVM into the native (binary) instructions. Once a JVM
and a library of Java APIs (for example, the APIs for I/O
operations) have been provided for a given OS/processor platform,
any Java program compiled into bytecode class files (so called JAR
files) can run on that JVM as long as it only uses the provided Java
APIs.
The output of "compiling" a Java source program is called Java
bytecode. It is comprised of bytecode class files collected in a JAR
(Java ARchive) file, and the bytecode methods in each class files
(the executable units of each class file). A JVM can either
interpret the bytecodes of each bytecode methods one bytecode at a
time mapping it to one or more hardware instructions of the target
processor that are immediately executed. Or, all the bytecodes of
selected methods (for example, a method invoked inside loops) can be
further compiled “on the fly” by a so called just-in-time (JIT)
compiler into native code methods, each of which is invoked and executed
when the original bytecode method would be invoked and executed.
This results in significant speed up of most Java programs,
especially those the execution of which involves multiple
invocations of “JITted” bytecode methods.
Why Java
?
-
Development of Java applications in shorter and less frequent
development cycles compared with developing the functionally
equivalent applications in C/C++ or other programming languages.
-
Reliable runtime deployment of created Java applications on your
device using the Java Runtime Environment (JRE) created and
customized by APOGEE.CZ for this device and guaranteed by Apogee
to fully work. This also means that you need not hassle with an
RTOS provider or a processor provider if something does not
work. APOGEE.CZ will do the “hassling” for you.
-
Far less costly technical support, maintenance, and updates of
deployed Java applications. And, should any updated application
stop working on APOGEE.CZ’s JRE, Apogee.cz will make it work
again.
-
Distribution of Java applications in form of processor and RTOS
independent bytecode JAR files rather than in form of source
code files. Each JAR file can be obfuscated to prevent its
reverse compilation into Java source code.
-
Easy migration of Java applications to new versions of targeted
device, or to new devices, without having to change their Java
source code. This is because every JRE accepts the JAR files in
the selected standard format (Java ME, Java SE 5, or Java SE 6).
|