Java is an object-oriented language and runtime environment (JRE). Java programs are platform independent, because they are compiled to bytecode and their execution is handled by a Virtual Machine called the Java VM or JVM.

Java is a high-level, platform-independent, object-oriented programming language and runtime environment. The Java language derives much of its syntax from and , but its object model is simpler than that of and it has fewer low-level facilities. Java applications are typically compiled to bytecode (called class files) that can be executed by a Java Virtual Machine (), independent of computer architecture. The manages memory with the help of a garbage collector (see ) in order to handle object removal from memory when not used anymore, as opposed to manually deallocating memory in other languages such as

Java is a general-purpose, concurrent, class-based, language designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA): code that executes on one platform need not be recompiled to run on another. Java is a popular programming language, particularly for web applications, with 10 million reported users. Java was originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.

Principles

The Java language was created with the following primary goals:

  1. Simple, object-oriented and familiar.
  2. Robust and secure.
  3. Architecture-neutral and portable.
  4. Execute with high performance.
  5. Interpreted, multi-threaded, and dynamic.
  6. Write once, run anywhere (WORA).

Versions

Notable Java versions, code-names, and release dates include:

JDK 1.0                  (January 23, 1996)
JDK 1.1                  (February 19, 1997)
J2SE 1.2    [Playground] (December 8, 1998)
J2SE 1.3    [Kestrel]    (May 8, 2000)
J2SE 1.4    [Merlin]     (February 6, 2002)
J2SE 5.0    [Tiger]      (September 30, 2004)
Java SE 6   [Mustang]    (December 11, 2006)
Java SE 7   [Dolphin]    (July 28, 2011)

For more codename as release date, visit J2SE Code Names

Whats new in each version of JDK: click here

Java SE 8 is expected in the summer of 2013 and is available as an Early Access Download.

The End Of Public Updates (Formerly called End Of Life) are:

J2SE 1.4   -  Oct 2008
J2SE 5.0   -  Oct 2009
Java SE 6  -  Feb 2013
Java SE 7  -  Jul 2014

Initial help

Before asking a question, use the search box in the upper right corner to see if it has been asked before by others (we have many duplicates), and please read Writing the perfect question to learn how to get Jon Skeet to answer your question.


Background

Java is a high-level, platform-independent, object-oriented programming language originally developed by James Gosling for Sun Microsystems and released in 1995. The Java trademark is currently owned by Oracle, which purchased Sun Microsystems on April 20, 2009.

The main reference implementation of Java is open source (the OpenJDK), which is supported by major companies including Oracle, Apple, SAP and IBM.

Very few computers can run Java programs directly. Therefore the Java environment is normally made available by installing a suitable software component. For Windows computers, this is usually done by downloading the free Java Runtime Environment (JRE) from Oracle which allows the system to run Java programs. The easiest way to do this is from java.com, and on a Macintosh computer, the user is prompted to download Java when an application requiring it is started. In -like system, Java is typically installed via the package manager.

Developers frequently need additional tools which are available in the free Java Development Kit (JDK) alternative to the JRE, which for Windows must be downloaded from Oracle and installed manually.

Java is compiled into bytecode which is interpreted on the JVM by compiling into native code. The compilation is done just-in-time (JIT). Initially this was viewed as a performance hit but with JVM and JIT compilation improvements this has become a lesser concern. Some time the JVM may be faster than native code compiled to target an older version of the processor for backward compatibility reasons.

Note: Other vendors exist, but they usually have license fees. For Linux and other platforms consult the operating system documentation.

More information:

Hello World

public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello, World!");
  }
}

Compilation and invocation of Hello World:

javac -d . HelloWorld.java
java -cp . HelloWorld

Java source code is compiled to an intermediate form (bytecode instructions for the Java Virtual Machine) that can be executed with the java command.

Beginners' resources

Day to day resources

Advanced resources

Free Java Programming Books and Resources

Code Language (used for syntax highlighting): lang-java