programming, language, portability (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 the early 1990's (initially for set-top television controllers), and released to the public in 1995.
Java first became popular by being the earliest portable dynamic client-side content for the
World-Wide Web in the form of
platform-independent Java "applets". In the late 1990's and into the 2000's it has also become very popular on the server side, where an entire set of
APIs defines the
J2EE.
Java is both a set of public specifications (controlled by Sun Microsystems through the
JCP) and a series of implementations of those specifications.
Java is syntactially similar to
C++ without user-definable
operator overloading, (though it does have
method overloading), without
multiple inheritance, and extensive automatic
coercions. It has automatic
garbage collection. Java extends
C++'s
object-oriented facilities with those of
Objective C for dynamic method resolution.
Whereas programs in C++ and similar languages are compiled and linked to platform-specific binary executables, Java programs are typically compiled to portable architecture-neutral bytecode or ".class" files, which are run using a
Java Virtual Machine. The JVM is also called an
interpreter, though it is more correct to say that it uses Just-In-Time Compilation to convert the bytecode into
native machine code, yielding greater efficiency than most interpreted languages, rivalling C++ for many long-running, non-GUI applications. The run-time system is typically written in
POSIX-compliant
ANSI C or
C++. Some implementations allow Java class files to be translated into
native machine code during or after compilation.
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.
Java has an extensive library of routines for all kinds of programming tasks, rivalling that of other languages.
For example, the "java.net} package supports
TCP/IP protocols like
HTTP and
FTP. Java applications can access objects across the
Internet via
URLs almost as easily as on the local
file system. There are also capabilities for several types of distributed applications.
The Java
GUI libraries provide portable interfaces. For example, there is an abstract Window class and implementations of it for
Unix,
Microsoft Windows and the
Macintosh. The "java.awt" and "javax.swing" classes can be used either in Web-based "Applets" or in client-side or "desktop" applications.
There are also packages for developing
XML applications,
web services, servlets and other web applications,
security, date and time calculations and I/O formatting, database (
JDBC), and many others.
Java is not directly related to
JavaScript despite the name.
(https://java.sun.com/).
Usenet newsgroup: news:comp.lang.java.
(2005-01-21)