Introduction to Java

Java is a general-purpose programming language  that is class-based, object-oriented (although not a pure OO language, as it contains primitive types), and designed to have as few implementation dependencies as possible. It is intended to let application developers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation.Java applications are typically compiled to bytecode that can run on any java virtual machine  (JVM) regardless of the underlying computer architecture . The syntax of Java is similar to C  and C++ , but it has fewer low-level  facilities than either of them. As of 2018, Java was one of the most popular programming language in use according to Github  particularly for client-sever web applications , with a reported 9 million developers.

Java was originally developed by James Gosling at Sun Microsystems (which has since been acquired by Oracle) and released in 1995 as a core component of Sun Microsystems’ Java platform. The original and reference implementation Java compilers, virtual machines, and class libraries were originally released by Sun under proprietary licenses. As of May 2007, in compliance with the specifications of the Java Community Process, Sun had relicensed most of its Java technologies under the GNU General Public License. Meanwhile, others have developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java (bytecode compiler), GNU Classpath (standard libraries), and IcedTea-Web (browser plugin for applets).

The latest versions are Java 12, released in March 2019, and Java 11, a currently supported long-term support  (LTS) version, released on September 25, 2018; Oracle released for the Legacy Java 8 LTS the last free public update in January 2019 for commercial use, while it will otherwise still support Java 8 with public updates for personal use up to at least December 2020. Oracle (and others) highly recommend that you uninstall older versions of Java, because of serious risks due to unresolved security issues.Since Java 9 (and 10) is no longer supported, Oracle advises its users to immediately transit to Java 11.

James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991. Java was originally designed for interactive television, but it was too advanced for the digital cable television industry at the time. The language was initially called Oak  after an oak  tree that stood outside Gosling’s office. Later the project went by the name Green and was finally renamed Java, from Java coffee. Gosling designed Java with a C/C++-style syntax that system and application programmers would find familiar.

Principles

There were five primary goals in the creation of the Java language:

  • It must be simple, object-oriented, and familiar.
  • It must be robust and secure.
  • It must be architecture-neutral and portable.
  • It must execute with high performance.
  • It must be interpreted, threaded, and dynamic.

Versions

Main article: Java version history

As of March 2019, Java 8 is supported; and both Java 8 and 11 as Long Term Support (LTS) versions. Major release versions of Java, along with their release dates:

  • JDK 1.0 (January 23, 1996)
  • JDK 1.1 (February 19, 1997)
  • J2SE 1.2 (December 8, 1998)
  • J2SE 1.3 (May 8, 2000)
  • J2SE 1.4 (February 6, 2002)
  • J2SE 5.0 (September 30, 2004)
  • Java SE 6 (December 11, 2006)
  • Java SE 7 (July 28, 2011)
  • Java SE 8 (March 18, 2014)
  • Java SE 9 (September 21, 2017)
  • Java SE 10 (March 20, 2018)
  • Java SE 11 (September 25, 2018)[41]
  • Java SE 12 (March 19, 2019)

Editions

See also: Free Java implementations § Class library

Java Platform Eeditions
Java CardMicro Edition (ME)
Standard Edition (SE)
Enterprise Edition (EE)JavaFX (bundled in JRE from 8 to 10 but separately for JavaFX 1.x, 2.x and 11)
PersonalJava (discontinued)

Sun has defined and supports four editions of Java targeting different application environments and segmented many of its APIs so that they belong to one of the platforms. The platforms are:

The classes in the Java APIs are organized into separate groups called packages. Each package contains a set of related interfaces, classes, and exceptions. Refer to the separate platforms for a description of the packages available.

Sun also provided an edition called Personal Java that has been superseded by later, standards-based Java ME configuration-profile pairings.