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.