Sídlištní 24
165 00 Praha 6
Czech Republic

IČO 26455358
DIČ CZ26455358

Home Why Java Products Links Comp.profile Contacts VUMS division

 

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).