Menu

Was ist Java? Die Sprache, die JVM und wo sie läuft

Was Java tatsächlich ist, wie die JVM ein einziges kompiliertes Programm überall laufen lässt und welche Art von Software mit Java gebaut wird.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

Java in einem Satz

Java ist eine statisch typisierte, objektorientierte Programmiersprache, die zu Bytecode kompiliert und auf der Java Virtual Machine (JVM) ausgeführt wird. Diese eine Designentscheidung -in ein neutrales Zwischenformat zu kompilieren und es dann auf einer virtuellen Maschine auszuführen- ist der Grund, warum dasselbe kompilierte Java-Programm unverändert unter Windows, macOS, Linux und darüber hinaus läuft.

Hier ist das obligatorische erste Programm. Du kannst es direkt hier ausführen:

Hier gibt es mehr Zeremoniell als in einer Skriptsprache, und das mit Absicht - Java bevorzugt explizite Struktur. Wir werden jedes Detail davon auf den nächsten Seiten auseinandernehmen.

Warum die JVM wichtig ist

Die meisten kompilierten Sprachen wandeln Quellcode direkt in Maschinencode für einen bestimmten Prozessor und ein bestimmtes Betriebssystem um. Ein für Windows kompiliertes Programm läuft nicht auf einem Mac. Java macht einen Umweg:

  1. javac kompiliert deinen .java-Quellcode in .class-Dateien, die Bytecode enthalten - Anweisungen für eine imaginäre Maschine, nicht für eine echte CPU.
  2. Die JVM für deine Plattform liest diesen Bytecode und führt ihn aus, wobei sie ihn unterwegs in native Maschinenbefehle übersetzt.

Weil jede Plattform ihre eigene JVM hat, sie aber alle denselben Bytecode verstehen, kompilierst du einmal und führst das Ergebnis überall dort aus, wo eine JVM existiert. Das ist der berühmte Slogan: einmal schreiben, überall ausführen.

Die JVM interpretiert nicht einfach blind. Ein Just-in-time-Compiler (JIT) beobachtet, welcher Code am häufigsten läuft, und kompiliert diese heißen Pfade dann in optimierten nativen Code - so erreichen lang laufende Java-Programme nahezu die Geschwindigkeit vollständig kompilierter Sprachen.

Statisch typisiert und objektorientiert

Zwei Eigenschaften prägen, wie Java-Code aussieht und sich anfühlt.

Statisch typisiert bedeutet, dass jede Variable einen zur Kompilierzeit bekannten Typ hat und der Compiler deine Typen prüft, bevor das Programm überhaupt läuft:

count ist für immer ein int; ihm "hello" zuzuweisen würde nicht kompilieren. Das fängt eine ganze Klasse von Fehlern früh ab, um den Preis von etwas mehr Tipparbeit am Anfang.

Objektorientiert bedeutet, dass Java Code in Klassen organisiert - Baupläne, die Daten und die Methoden bündeln, die auf ihnen operieren. Selbst der Einstiegspunkt oben lebt innerhalb einer class Main. Fast alles, was du in Java schreibst, lebt innerhalb einer Klasse.

Wofür Java verwendet wird

Java ist eine der am weitesten verbreiteten Sprachen der Welt. Du findest sie in:

  • Backend- und Unternehmenssystemen - Banken, Versicherungen, große Webdienste und alles, was über Jahre zuverlässig laufen muss.
  • Android - die ursprüngliche Sprache der Plattform, auch neben Kotlin noch zentral für die Android-Laufzeitumgebung.
  • Big Data - Hadoop, Spark, Kafka und ein Großteil des Data-Engineering-Ökosystems laufen auf der JVM.
  • Desktop und eingebettet - von IDEs (IntelliJ, Eclipse) bis hin zu Kassenterminals und Chipkarten.

Sein Ruf gründet auf Stabilität, Abwärtskompatibilität und einer riesigen Standardbibliothek, weniger darauf, die knappste Sprache zu sein. Code, der vor Jahren für Java geschrieben wurde, läuft in der Regel heute noch.

Java ist nicht JavaScript

Es lohnt sich, das klar zu sagen, weil die Namen endlose Verwirrung stiften: Java und JavaScript sind verschiedene, unabhängige Sprachen. Sie teilen sich vier Buchstaben aus historischen Marketinggründen und sonst nichts von Bedeutung. Java ist kompiliert, statisch typisiert und läuft auf der JVM; JavaScript ist dynamisch typisiert und läuft in Browsern und in Node.js. Die eine zu lernen bringt dir die andere nicht bei.

Als Nächstes: Java installieren

Um Java auf deinem eigenen Rechner zu schreiben und auszuführen, brauchst du ein JDK (Java Development Kit) - den Compiler plus die JVM plus die Standardbibliothek. Die nächste Seite führt durch die Installation und zeigt, wie du bestätigst, dass es funktioniert.

Häufig gestellte Fragen

Wofür wird Java verwendet?

Java betreibt große serverseitige und Unternehmenssysteme, Android-Apps (über das Android SDK und die mit Kotlin geteilte Laufzeitumgebung), Big-Data-Werkzeuge wie Hadoop und Spark sowie unzählige Desktop- und eingebettete Anwendungen. Seine Stärken sind Stabilität, eine riesige Standardbibliothek und die JVM, die dasselbe kompilierte Programm auf jedem Betriebssystem ausführt.

Ist Java kompiliert oder interpretiert?

Beides. Der Java-Compiler (javac) wandelt deinen Quellcode in plattformneutralen Bytecode um, und die JVM führt diesen Bytecode dann aus - zunächst interpretiert sie ihn und kompiliert anschließend die heißen Pfade mit einem Just-in-time-Compiler (JIT) in nativen Maschinencode. Java wird also zu Bytecode kompiliert und zur Laufzeit interpretiert und per JIT kompiliert.

Ist Java dasselbe wie JavaScript?

Nein - es sind unabhängige Sprachen, die sich aus historischen Marketinggründen einen Namen teilen. Java ist eine statisch typisierte, kompilierte Sprache, die auf der JVM läuft; JavaScript ist eine dynamisch typisierte Sprache, die in Browsern und in Node.js läuft. Die eine zu kennen bedeutet nicht, dass du die andere kennst.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S