What differs Java from many other programming languages is the fact that applications written in Java are executed on a Java Virtual Machine (JVM). So, unlike other languages, Java programs are compiled not into the machine codes but into an intermediate language called bytecode, that is executed not on the hardware itself, but on a JVM. This brings one of the key benefits of Java – Independence from platform, i.e. Java-based apps can run on Windows, Linux, or whatever else. The main thing is to have a JVM installed on the device.