Java is a compiled (turned into machine language) language like C or C++. It can also be pseudo-compiled into bytecode so that it can run on multiple platforms which is how applets work. The bytecode needs a JIT (just in time) compiler to finish compiling the software for it to work. Java is an object oriented language. Java applications can only be used on the type of machines they were compiled for. Java applets can be used on all machines including embedded devices that use a runtime engine.