EMZETT.
Login

Java

Kurz: Eine objektorientierte Programmiersprache, die nicht direkt in Maschinencode, sondern in Bytecode kompiliert wird und auf der Java Virtual Machine (JVM) läuft.

Genauer: Das JVM-Prinzip ermöglicht “Write once, run anywhere” — derselbe Bytecode läuft auf jedem Betriebssystem, für das eine JVM existiert. Wird häufig für große Unternehmensanwendungen, Android-Apps (historisch) und Backend-Systeme genutzt. Kompiliert und ausgeführt wird sie mit Werkzeugen aus dem JDK.

Im Detail

public class Hallo {
    public static void main(String[] args) {
        System.out.println("Hallo Welt");
    }
}

Der zentrale Unterschied zu Sprachen wie C++ ist die zweistufige Ausführung: javac kompiliert den Quellcode zu plattformunabhängigem Bytecode (.class-Dateien), die JVM übersetzt diesen Bytecode erst zur Laufzeit in den nativen Maschinencode des jeweiligen Betriebssystems (per Just-in-Time-Compiler). Das kostet etwas Startzeit und Overhead gegenüber direkt kompilierten Sprachen, bringt aber echte Plattformunabhängigkeit — dieselbe .class-Datei läuft unverändert auf Windows, Linux und macOS, solange eine JVM installiert ist.

Java ist streng objektorientiert (fast alles ist eine Klasse, siehe OOP), statisch typisiert (Datentypen stehen zur Kompilierzeit fest) und verwaltet Speicher automatisch über einen Garbage Collector. Diese Kombination aus Stabilität, Reife und großem Ökosystem macht Java bis heute zu einer der meistgenutzten Sprachen für große, langlebige Unternehmensanwendungen (Banken, Versicherungen, Enterprise-Backend-Systeme).

Entstehung bei Sun Microsystems

Java wurde ursprünglich 1991-1995 bei Sun Microsystems unter Führung von James Gosling entwickelt, zunächst für interaktive Fernsehgeräte gedacht (“Oak”), bevor sich der Fokus mit dem Aufkommen des World Wide Web auf Web-Applets verlagerte. Das Leitmotiv “Write Once, Run Anywhere” (WORA) war von Anfang an zentrales Verkaufsargument gegenüber C/C++, wo für jede Zielplattform separat kompiliert werden musste. Oracle übernahm Sun 2010 und damit auch Java; seither erscheinen neue Hauptversionen in einem festen halbjährlichen Rhythmus (statt wie früher unregelmäßig alle paar Jahre), was die Sprache deutlich schneller weiterentwickelt als in ihrer ersten Dekade.

Das Java-Ökosystem jenseits der Sprache

Ein wesentlicher Grund für Javas anhaltende Enterprise-Dominanz ist weniger die Sprache selbst als das riesige, über Jahrzehnte gewachsene Ökosystem: Build-Werkzeuge wie Maven und Gradle, Frameworks wie Spring (praktisch der De-facto-Standard für Enterprise-Backends) und Hibernate, sowie eine enorme Zahl ausgereifter, gut gewarteter Bibliotheken für praktisch jeden Anwendungsfall. Auch andere Sprachen wie Kotlin und Scala laufen auf derselben JVM und können nahtlos mit bestehendem Java-Code interagieren — ein Unternehmen kann so schrittweise neue Sprachen einführen, ohne die bestehende Java-Codebasis komplett zu ersetzen.

Häufige Kritikpunkte

Trotz seiner Verbreitung steht Java auch für spürbare Kritik: die Sprache gilt als “verbose” (man muss vergleichsweise viel Code für einfache Dinge schreiben, etwa ausführliche Getter/Setter-Methoden — moderne Java-Versionen mit Records und var mildern das inzwischen ab), der Speicherverbrauch der JVM ist höher als bei direkt kompilierten Sprachen, und die Startzeit einer JVM-Anwendung ist spürbar langsamer als bei nativen Programmen — ein Nachteil besonders bei kurzlebigen Cloud-Funktionen, wo Projekte wie GraalVM (native, vorab kompilierte Java-Binärdateien) gezielt gegensteuern.

Siehe auch: JDK, OOP, Garbage Collector, Kotlin