Java is designed to support applications that will be deployed into heterogeneous networked environments
Java compiler generates bytecodes, an architecture neutral intermediate format designed to transport code efficiently to multiple hardware and software platforms
Your programs are the same on every platform, so there are no data type incompatibilities across hardware and software architectures
The Java Virtual Machine is specific for each hardware and software platforms and isolates platform specifics
The Java Virtual Machine is based primarily on the POSIX interface specification, an industry standard definition of a portable system interface
POSIX is an operating system interface standardized by ISO/IEC & IEEE