Java is designed to be architecturally neutral so it can run on multiple platforms. The same runtime code can run any platform which supports Java.
To achieve its cross-architecture capabilities, the Java compiler generates architecturally neutral bytecode instructions. These instructions are designed to be both easy to interpret on any machine and easily translated into native machine code on the fly as shown in Figure 1.
Figure 1: Java Runtime Environment
Java is a fully object-oriented language and it can be used to:
Java has a wide range of libraries (or packages) which can be used to extend the language. Libraries are available for user interface objects (AWT or swing variants), I/O, a network library, etc.
... each of the features outlined above is discussed in more detail on this site (see Java Topics).