image: Java-Logo.png

Java (1995)

James Gosling
(Foto von Yuichi Sakuraba)

Java, ent­wick­elt von James Gosling und seinem Team bei Sun Microsystems und erst­mals 1995 ver­öffent­licht, ist eine ob­jekt­orien­tierte Pro­gram­mier­spra­che, die für ihre Plattformun­ab­hän­gigkeit bekannt ist.

Java wird häufig für die Ent­wick­lung von Un­ter­neh­mens­an­wen­dun­gen, mo­bi­len An­wen­dun­gen (insbesondere Android-Apps), Web­an­wen­dun­gen und großen Systemen ver­wen­det. Bekannte Beispiele für An­wen­dun­gen und Plattformen, die in Java ent­wick­elt wur­den, sind die Android-Betriebssysteme, die Apache Hadoop-Frame­works für Big Data und die Unternehmenssoftware von Unternehmen wie LinkedIn und Netflix. Heutzutage ist Java immer noch äußerst relevant und weit verbreitet, da es eine robuste, skalierbare und sichere Umgebung für die Ent­wick­lung bietet und eine große Entwickler-Community sowie eine Vielzahl von Bib­lio­theken und Frame­works un­ter­stützt.

1. Hello, world!

Java-Pro­gramme werden in Textdateien mit der Endung .java geschrieben. Diese Da­tei­en werden dann mit dem Java-Compiler javac kompiliert, um ausführbare Da­tei­en zu erzeugen. Diese ausführbaren Da­tei­en haben die Endung .class und können mit dem Java-Interpreter java ausgeführt werden.

Stelle zuerst sicher, dass du keinen Ordner geöffnet hast. Um sicherzugehen, drücke einfach den Shortcut für »Ordner schließen«: StrgK und dann F. Dein Work­space sollte jetzt ungefähr so aussehen:

Quelltext schreiben

Klicke auf »New File« und wähle als Dateityp »Text File« (oder bestätige einfach mit Enter).

Schreibe nun den folgenden Code in die Datei:

1
2
3
4
5
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Da Visual Studio Code noch nicht weiß, dass es sich um Java-Quelltext handelt, ist dein Programm momentan noch einfarbig, aber das wird sich gleich ändern. An dem weißen Punkt erkennst du, dass deine Änderungen noch nicht gespeichert sind.

Drücke nun StrgS, um die Datei zu speichern. Gib HelloWorld.java ein – der vollständige Pfad zu deiner Datei lautet dann /workspace/HelloWorld.java.

Sobald du die Datei gespeichert hast, wird sie automatisch als Java-Datei erkannt und die Syntax wird hervorgehoben.

Kompilieren und ausführen

Bevor wir das Programm ausführen können, müssen wir es kompilieren. Dadurch wird der Quelltext des Programms in Bytecode übersetzt, den die Java Virtual Machine (JVM) ausführen kann.

Öffne dazu ein Ter­mi­nal, indem du entweder StrgJ drückst oder das Panel-Symbol rechts oben drückst. Dein Fenster sollte jetzt ungefähr so aussehen:

Wir rufen jetzt den Java-Compiler javac auf, um das Programm zu übersetzen:

javac HelloWorld.java
Du musst nicht den vollständigen Da­tei­na­men schreiben. Schreib einfach javac He und drücke Tab, um den Da­tei­na­men automatisch zu HelloWorld.java vervollständigen zu lassen.

Wenn du keinen Fehler gemacht hast, wird das Programm erfolgreich kompiliert und die Datei HelloWorld.class wird im selben Verzeichnis erstellt. Du kannst dies überprüfen, indem du dir die Da­tei­en im aktuellen Verzeichnis mit ls oder ls -l anzeigen lässt:

Die Datei HelloWorld.class ist die ausführbare Datei. Sie kann allerdings nicht direkt vom Com­puter ausgeführt werden, sondern muss von der Java Virtual Machine (JVM) ausgeführt werden. Um das Programm auszuführen, gib folgenden Befehl ein:

java HelloWorld

Das Programm sollte die Nachricht Hello, World! im Ter­mi­nal ausgeben. Du kannst beide Schritte auch in einem Befehl kombinieren:

javac HelloWorld.java && java HelloWorld
Die Zeichenkombination && sorgt dafür, dass der zweite Befehl nur ausgeführt wird, wenn der erste erfolgreich war.

Fehler finden und beheben

Wenn du einen Fehler im Code machst, wird der Compiler eine Fehlermeldung ausgeben. Versuche zum Beispiel, statt println das Wort printn zu schreiben:

System.out.printn("Hello, World!");

Speichere die Datei und führe den Compiler erneut aus:

javac HelloWorld.java
Nutze die Pfeiltaste hoch , um den letzten Befehl erneut einzugeben. So kannst du schnell dein Programm testen, nachdem du es verändert hast.

Der Compiler sollte eine Fehlermeldung ausgeben, die dir hilft, den Fehler zu finden:

Es lohnt sich, die Fehlermeldungen genau zu lesen, um den Fehler zu finden und zu beheben. Achte auf die Zeilennummer (in diesem Beispiel 3) und den Text, der dir sagt, was falsch ist. Denke daran, den Fehler wieder zu beheben, bevor du das nächste Beispiel ausprobierst.

2. Primfaktorzerlegung

Im zweiten Beispiel wollen wir eine Zahl in ihre Primfaktoren zerlegen. Wir erreichen dies mit einem sehr einfachen Al­go­rith­mus, der einfach alle Zahlen von 2 bis zur eingegebenen Zahl durchprobiert und dabei diejenigen Zahlen ausgibt, bei denen die Division ohne Rest möglich ist. Außerdem wird die eingegebene Zahl durch jeden gefundenen Primfaktor geteilt, um die Schleife möglichst schnell zu beenden. An diesem Beispiel kannst du sehen, wie man in Java Be­nut­zer­ein­ga­ben verar­bei­tet und Schleifen ver­wen­det. Erstelle eine neue Datei mit StrgAltN und schreibe den folgenden Code hinein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;

public class Factor {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int number = scanner.nextInt();

        System.out.print("Prime factors of " + number + ": ");
        for (int i = 2; i <= number; i++) {
            while (number % i == 0) {
                System.out.print(i + " ");
                number /= i;
            }
        }
        System.out.println();

        scanner.close();
    }
}

Speichere die Datei unter dem Namen Factor.java. Kompiliere das Programm:

javac Factor.java

Falls du keine Fehlermeldung erhältst, kannst du das Programm ausführen und testen:

Das Programm hat die Zahl 123 in ihre Primfaktoren zerlegt und ausgegeben. Probiere aus, was passiert, wenn du die Zahl 3000000000 eingibst. Was könnte der Grund dafür sein?

3. Bubblesort

Im dritten Beispiel wollen wir eine Liste von 10 Zufallszahlen sortieren. Dafür verwenden wir den Bubblesort-Al­go­rith­mus, der zwar nicht besonders effizient ist, aber sehr einfach zu verstehen und zu implementieren. Der Bubblesort-Al­go­rith­mus funktioniert, indem er die Liste mehrmals durchläuft und benachbarte Elemente vertauscht, wenn sie in der falschen Reihenfolge sind.

An diesem Beispiel kannst du sehen, wie man in Java Arrays ver­wen­det, Funk­tio­nen ver­wen­det und Schleifen verschachtelt.

Erstelle eine neue Datei und schreibe den folgenden Code hinein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.Arrays;
import java.util.Random;

public class BubbleSort {
    public static void main(String[] args) {
        int[] array = generateRandomArray(10);
        System.out.println("Original array: " + Arrays.toString(array));
        bubbleSort(array);
        System.out.println("Sorted array: " + Arrays.toString(array));
    }

    public static int[] generateRandomArray(int size) {
        int[] array = new int[size];
        Random random = new Random();
        for (int i = 0; i < size; i++) {
            array[i] = random.nextInt(100);
        }
        return array;
    }

    public static void bubbleSort(int[] array) {
        int n = array.length;
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (array[j] > array[j + 1]) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }
}

Speichere die Datei unter dem Namen BubbleSort.java. Kompiliere das Programm:

javac BubbleSort.java

Falls du keine Fehlermeldung erhältst, kannst du das Programm ausführen und testen:

Das Programm hat eine Liste von 10 Zufallszahlen sortiert. Versuche, den Quelltext so zu verändern, dass statt 10 Zahlen 100 oder mehr Zahlen sortiert werden.

4. Zusammenfassung

In diesem Kapitel hast du an drei Beispielen gesehen, wie man ein einfaches Java-Programm schreiben, kompilieren und ausführen kann. Das ist natürlich nur ein erster Eindruck. Um Java wirklich zu beherrschen, musst du noch viel mehr lernen – am besten, indem du eigene Pro­gramme schreibst und ausprobierst. Die Buchhandlungen, Bib­lio­theken und Youtube sind voll von Material für dich. Viel Spaß beim Pro­gram­mier­en!