Die Programmiersprache Java ☕

Java ist eine C-artige, universelle Programmiersprache. Das bedeutet, dass die 👉 Syntax derer der Programmiersprache C ähnelt. Java ist sehr vielseitig - das Einsatzgebiet von Java ist nicht auf einen bestimmten Bereich der Softwareentwicklung spezialisiert. Sehr häufig findet Java Anwendung in der Entwicklung von Webanwendungen (Back-end) und mobilen Apps. Aber auch Desktop-Anwendungen, 3D-Computerspiele und viele mehr lassen sich mit Java umsetzen.

Besonderheiten

Objektorientierung

Java ist eine (beinahe) völlig objektorientierte Programmiersprache. Mehr dazu erfährst du in den entsprechenden Kapiteln zur Objektorientierung.

Garbage Collector

Eine JVM verfügt über einen Garbage Collector, also eine automatische Speicherbereinigung. In Java müssen deshalb vom Code nicht mehr verwendete (referenzierte) Daten und Objekte nicht “händisch” aus dem Speicher gelöscht werden - dies geschieht automatisch.

Java-Platform

Java Platform Diagram

Grafik: #; Quelle: oracle.com; Mehr dazu: Wikipedia

JRE

Die Java Runtime Environment (dt. Java Laufzeitumgebung) bezeichnet all das, was ein fertig kompiliertes Java-Programm braucht, um ausgeführt werden zu können. Sie umfasst (unter anderem) die benötigten Java-Programmbibliotheken (siehe unten!) und die JVM (siehe unten!).

JDK

Das Java Development Kit (dt. Java-Entwicklungspaket 🤔) umfasst die oben erwähnte JRE sowie den Quellcode der Java Class Library (siehe unten!) und die Entwicklungswerkzeuge zum Entwickeln von Java-Programmen (Compiler, etc.).

JVM und Bytecode

Java-Programme laufen in einer virtuellen Maschine, der JVM (Java Virtual Machine). Dies ist eine Software, die auf dem Zielsystem installiert sein muss. Da die JVM für alle gängigen Betriebssysteme (und von ganz unterschiedlichen Anbietern) verfügbar ist, sind Java-Programme weitestgehend Betriebssystem-unabhängig - solange nicht auf plattformspezifische Funktionen zugegriffen wird. Es ist jedoch auch möglich (wenn auch eher unüblich), Java-Programme direkt für die Ausführung auf einem bestimmten Betriebssystem zu kompilieren - natürlich aber nur auf Kosten der Plattform-Unabhängigkeit der kompilierten Programme.

Damit ein Java-Programm in einer JVM ausgeführt werden kann, muss es (statt in Maschinencode, also in Code, den das Zielsystem direkt verarbeiten kann) in sogenannten Java-Bytecode kompiliert werden. Dieser Code kann dann von der JVM ausgeführt werden.

Eine rohe, unkompilierte Java-Quelltextdatei hat die Endung .java - nach dem Kompilieren zu Bytecode die Endung .class (denn in Java ist alles irgendwie Teil einer Klasse).

Java Class Library

Als Java Class Library (auch: Java Standard Library) bezeichnet man die sehr umfangreiche Programmbibliothek, die fester Teil der Java-Plattform und somit in jeder JRE verfügbar ist.

💬 Siehe Grafik zur Java Platform