Hat sich Java in den letzten Jahren verändert?

5 Antworten

Fast alle heute verwendeten Programmiersprachen verändern sich immer weiter. Aber normalerweise fallen keine Dinge weg, es kommen Dinge hinzu. Da die Grundlagen aber gleich bleiben, schadet es nichts, diese auch mit älteren Quellen zu lernen. Moderne Features sind dann einfacher anzueignen.

Java verändert sich, aber nicht unbedingt in den Basics und es gibt Bücher die halbwegs up to date sind. Wie z.B. Java ist auch eine Insel: https://openbook.rheinwerk-verlag.de/javainsel/

Und grundsätzlich kann man auch online infos finden wenn etwas z.b. veraltet ist i.d.F. "ABC sollte nicht mehr verwendet werden, neu ist DEF".

Von Experte daCypher bestätigt

Die wichtigsten Funktionen seit Java 11 sind:

  • Pattern Matching (switch, instanceof)

Jetzt kann man so etwas schreiben wie:

Object o = "Test";
if (o instanceof String s) System.out.println(s.substring(2)); // st

Oder auch so:

String str = switch (o) {
    case String s -> s.substring(2);
    case Integer i -> i.toString();
} // st

Switch expressions:

String result = switch (str) {
    case "Te" -> "Anfang vom Test";
    case "st" -> "Ende vom Test";
    case "Test" -> "Ganzer Test";
    default -> "Kein Test";
} // Ende vom Test
  • Sealed classes

Damit kann man nur bestimmten Klassen die Berechtigung dafür geben, von einer Klasse zu extenden. Wenn man zum Beispiel eine API erstellt und da eine public non-final Klasse drin hat, aber nicht möchte, dass Fremde von dieser Klasse extenden, kann man das so managen.

  • Records

Records sind eine Abkürzung für Klassen, die nur final-Attribute beinhalten. Sie enthalten automatisch einen Konstruktor und Implementationen für hashCode, equals und toString.

  • var

Innerhalb von Methoden oder Lambda-Expressions kann man Variablen einfach mit "var" statt dem Typen definieren. Der Typ wird automatisch erkannt (immer noch strictly typed) und so hat man einfacheren Code. Besonders bei generischen Klassen, da die Typen dort sehr lang werden können.

  • Neue String-Methoden
Woher ich das weiß:Hobby – Ich mache Apps als Hobby.

Es ist durchaus noch sinnvoll.
Alle diese Dinge aus diesen Jahren werden sich noch genauso anwenden lassen (Mit den dort genutzten JDKs und Bibliotheken), es sind nur neue Optionen und Features dazugekommen.
Auch, wenn du mit Material von 2022 anfängst, das wird genauso in wenigen Jahren wieder unvollständig sein.
Ich würde heute sagen, alles, was mindestens mit Java 11 beginnt, ist noch sehr sinnvoll, Wenn es Java 9 ist, dann ist es auch noch ok, die Basics bleiben gleich.

Woher ich das weiß:Berufserfahrung – Java-Entwickler von Batch- und Webanwendungen

Java entwickelt sich rasch, bleibt aber abwärtskompatibel. Aktuell ist Version 18.

Material für Java vor Version 8 solltest du ignorieren. Alles seitdem ist okay, du solltest aber im Hinterkopf haben dass es heute möglicherweise bessere/einfachere Lösungen gibt.