Java

Java is object-oriented, distributed, interpreted, architecture-neutral, portable, multithreaded, dynamic, buzzword-compliant, general-purpose programming language developed by Sun Microsystems in the early 1990s (initially for set-top television controllers) and released to the public in 1995.

History
Java was named after the n, a source of that is popular with programmers.

Java first became popular as the earliest portable dynamic client-side content for the web in the form of -independent s. In the late 1990s and into the 2000s it also became very popular on the server side, where an entire set of APIs defines the.

Java is both a set of public specifications (controlled by the, which acquired Sun Microsystems, through the ) and a series of implementations of those specifications.

Java is syntactically similar to C++ without user-definable, (though it does have overloading), without  and extensive automatic. It has automatic. 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  ".class" files, which are run using a  (JVM). The JVM is also called an, though it is more correct to say that it uses to convert the  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 or C++. Some implementations allow Java class files to be translated into native machine code during or after compilation.

The Java compiler and both enforce  checking - procedures must be explicitly typed. Java aids in the creation of virus-free, tamper-free systems with based on.

Java has an extensive library of routines for all kinds of programming tasks, rivalling that of other languages. For example, the 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 with implementations for Unix, Microsoft Windows and Macs. The and  classes can be used either in web-based s or in  applications or s.

There are also packages for developing XML applications, s, s and other web applications, security, date and time calculations and I/O formatting, database, and many others.