Java (not to be confused with JavaScript) is a general-purpose object-oriented programming language designed to be used in conjunction with the Java Virtual Machine (JVM). "Java platform" is the name for a computing system that has installed tools for developing and running Java programs. Use this tag for questions referring to Java programming language or Java platform tools.

Java is a high-level, platform-independent, object-oriented (OOP) programming language and run-time environment.

The Java language derives much of its syntax from C and C++, but its object model is simpler than that of C++ and it has fewer low-level facilities. Java applications are typically compiled to bytecode (called class files) that can be executed by a JVM (Java Virtual Machine), independent of computer architecture. The JVM often further compiles code to native machine code to optimize performance.

The JVM manages memory with the help of a garbage collector in order to handle object removal from memory when not used any more. Java supports features such as reflection and interfacing with C and C++ via JNI.

Java is designed to have as few implementation dependencies as possible, intended to allow application developers to "write once, run anywhere" (WORA): code that executes on one platform does not need to be recompiled to run on another machine. Java was originally developed by [James Gosling] at Sun Microsystems (which merged with Oracle Corporation on April 20, 2009) and was released in 1995 as a core component of Sun Microsystems' Java platform.

The [Java platform] is the name given by Sun (now Oracle) to computing systems that have installed tools for developing and running Java programs. The platform features a wide variety of tools that can help developers work efficiently with the Java programming language.

The platform consists of two essential software packages:

  • the Java Runtime Environment (JRE), which is needed to run Java applications and applets; and,
  • the Java Development Kit (JDK), which is needed to develop Java applications and applets. The JDK comes with a JRE.

In this section, we will explore in further detail what these two software components of the Java platform do.

history | excerpt history