(After the Indonesian island, a source of programming fluid) A simple, object-oriented, distributed, interpreted, robust, secure, architecture-neutral, portable, multithreaded, dynamic, buzzword-compliant, general-purpose programming language developed by Sun Microsystems in 1995(?). Java supports programming for the Internet in the form of platform-independent Java "applets".
Java is similar to C++ without operator overloading (though it does have method overloading), without multiple inheritance, and extensive automatic coercions. It has automatic garbage collection.
Java programs can run stand-alone on small computers. The interpreter and class support take about 40 kilobytes; adding the standard libraries and thread support (essentially a self-contained microkernel) adds an additional 175Kb.
Java extends C++'s object-oriented facilities with those of Objective C for dynamic method resolution.
Java has an extensive library of routines for TCP/IP protocols like HTTP and FTP. Java applications can access objects across the Internet via URLs as easily as on the local file system.
The Java compiler and linker both enforce strong type checking - procedures must be explicitly typed. Java supports the creation of virus-free, tamper-free systems with authentication based on public-key encryption.
The Java compiler generates an architecture-neutral object file executable on any processor supporting the Java run-time system. The object code consists of bytecode instructions designed to be both easy to interpret on any machine and easily translated into native machine code at load time.
The Java libraries provide portable interfaces. For example, there is an abstract Window class and implementations of it for Unix, Microsoft Windows and the Macintosh. The run-time system is written in POSIX-compliant ANSI C. Java applets can be executed as attachments in World-Wide Web documents using either Sun's HotJava browser or Netscape Navigator version 2.0.