Java ist nicht nur eine Programmiersprache, sondern gleichzeitig eine Laufzeitumgebung, deren Erfolgsgeschichte im Jahre 1995 ihren Anfang hat. Java ist eine von Sun Microsystems entwickelte Syntax. Die Technologie hinter Java dient als Basis für die meisten modernen Programme, wie Dienstprogramme, Business-Anwendungen und Spieleanwendungen.
Java ist keinesfalls mit der Skriptsprache JavaScript zu verwechseln, eine Skriptsprache, die hauptsächlich zur eingebetteten Programmierung in HTML-Systemen verwendet wird, um die Ausführung von Webapplikationen zu ermöglichen.
Die Programmierung von Java findet mit Hilfe von sogenannten Klassen und Objekten statt, die beliebig manipulierbar sind und folglich die Verwaltung von Softwareprojekten und Wiederverwendbarkeit von Modulen vereinfacht. Durch die Nutzung von Befehlen kann man genau steuern wie sich ein Programm verhalten soll. Daher zählt Java zu den objektorientierten und imperativen Programmiersprachen.
Unter Java stehen mehrere Ebenen zur Verfügung, die das System zum Laufen bringen: das Java-Entwicklungswerkzeug (Java-Development-Kit) sowie die Java-Laufzeitumgebung (Java-Runtime-Environment), die auf der virtuellen Maschine (Java-Virtual-Machine) und sogenannten Bibliotheken basiert. Die virtuelle Maschine ist dabei am wichtigsten, da sie die von Java generierten Bytecodes nicht nur interpretiert, sondern auch kompiliert (Java-Compiler) und optimiert und dadurch für Zielplattformen nutzbar macht. Java-Syntax und Java-Semantik sind in der Java-Language-Specification von Sun Microsystems festgehalten.
Jedes Programm liegt zunächst als normaler Text vor. Dieser Quellcode muss in einen für jede Computerplattform verständlichen Code übersetzt werden, der nur mit der richtigen Laufzeitumgebung funktioniert. Dieses System garantiert eine Plattformunabhängigkeit von Java, wenn alle Komponenten gegeben sind. Darin liegt die Universalität von Java.
Java ist in einer Weise konzipiert, dass ein und dieselbe Version auf jeder beliebigen Hardware laufen kann, unabhängig vom Prozessor oder ähnlichem. Andere Programmiersprachen und damit erstellte Programme sind im Gegensatz dazu meist exklusiv an das Betriebssystem gebunden, auf dem sie erstellt wurden. Zusätzlich bleibt Java dynamisch, indem die virtuelle Maschine stets optimiert wird und anpassungsfähig an sich ändernde Umgebungen bleibt. Dadurch wird eine ähnliche Geschwindigkeit im Vergleich zu anderen populären Programmiersprachen gewährleistet.
Annotationen, eine Erweiterung der Programmiersprache, erlauben es sogar mittlerweile, dass der Benutzer in vorgegebenen Rahmen benutzerdefinierte Erweiterungen anstellen kann. Auch erlaubt Java, dass umgebungsfremde Klassen wie Applets auf Java-Systemen laufen, gleichzeitig aber keinen Schaden anrichten.
Auch lassen sich aus dem Java-Code heraus unterschiedliche Skripte, die auf einer anderen Sprache basieren, ausführen, sowie andere Sprachen, die nach Java kompiliert werden. Dies hat zur Folge, dass einige Programmteile in anderen Programmsprachen umsetzbar sind. Eine darauf angelegte Optimierung seitens der virtuellen Maschine ist bereits von Sun Microsystems umgesetzt worden. Neben dem Gründungsunternehmen existieren weitere Unternehmen wie Siemens, Apple, IBM und HP, die sich darum kümmern, dass eine Sprachspezifikation von Java weiterentwickelt wird (Java Community Process). Da ursprünglich Quelltexte von Java nicht beliebig modifiziert werden durften, entstanden neben dem JCP noch weitere unabhängige Gruppen, die Java unter einer freien Open-Source-Lizenz zur Verfügung stellen wollen.
Auch Apple hat sich mittlerweil an Java angepasst und hat seit Mac OS X Version 10.3 eine Entwicklungsumgebung namens Xcode bereitgestellt, die diverse Programmsprachen unterstützt und auf Java beruht.
Hat man nicht die passende Laufzeitumgebung, dann kann man Java auch in ein anderes Programm einpacken (Java-Wrapper) und es nach einer angemessenen Umgebung suchen lassen, um diese dann herunterzuladen damit Java starten kann.