Zusammenfassung der Unterschiede zwischen Java-Versionen? [geschlossen]

14

Was sind die Hauptunterschiede zwischen den Java-Versionen in Bezug auf die Softwareentwicklung? Wo findet man eine Zusammenfassung der wichtigsten Änderungen in Bezug auf die Programmierung?

Die Versionshinweise wie http://www.oracle.com/technetwork/java/javase/releasenotes-136954.html sind möglicherweise schwer zu lesen.

Beispielsweise gibt es in Java 1.5 eine neue Codestruktur "für jeden".

boucekv
quelle
1
In der kompilierten Java-Dokumentation von http://javadoc.allimant.org finden Sie eine Beschreibung der Neuerungen. Abschnitt im Inhaltsverzeichnis. Ein Java-Versionsverlauf ist auf Wikipedia verfügbar.
Axel Kemper

Antworten:

94

Dies ist eine Zusammenfassung des hervorragenden Wikipedia-Artikels über die Java-Versionsgeschichte . Es ist sehr selektiv (und voreingenommen in Bezug auf das, was ich kenne und benutze), sonst würde es sich einfach als Kopie des Artikels herausstellen.

Die kühnen Teile haben die Sprache als Ganzes wirklich vorangebracht. Wie Sie sehen, hat nicht jede Veröffentlichung mutige Teile.

Java 11

JSR 384 , was ist neu ?

Sprachänderungen:

Bibliotheksänderungen:

Java 10

JSR 383 , was ist neu ?

Sprachänderungen:

Java 9

JSR 379 , was ist neu ?

Sprachänderungen:

Bibliotheksänderungen:

  • Java Platform Module System (Stichsäge)
    • Modularisierung der Plattform selbst
    • macht Module zu einem erstklassigen Bürger, der den chaotischen Klassenpfad durch Module mit echten Abhängigkeitsinformationen ersetzen soll

Andere Änderungen:

  • Die Leute scheinen über die Namenskonvention 1.x hinweggekommen zu sein, fast niemand nennt dies "Java 1.9".

Java 8 (aka 1.8)

JSR 337 , was ist neu ?

Sprachänderungen:

  • Lambda-Ausdrücke ( JSR 335 , enthält Methodenhandles)
  • Fortsetzung von Project Coin (kleine Sprachverbesserungen)
  • Anmerkungen zu Java-Typen

Bibliotheksänderungen:

Java 7 (aka 1.7)

JSR 336 , Funktionen und Verbesserungen

Sprachänderungen:

Bibliotheksänderungen:

Plattformänderungen:

Java 6 (aka 1.6)

JSR 270 . Funktionen und Verbesserungen

Meist inkrementelle Verbesserungen an vorhandenen Bibliotheken, keine neuen Sprachfunktionen (außer der @OverrideSnafu ).

Java 5 (aka 1.5)

JSR 176 , Funktionen und Verbesserungen

Sprachänderungen:

  • Generika (das ist das große)
  • Anmerkungen
  • enum Typen
  • varargs, erweitert für Schleifen (für jede)

Bibliotheksänderungen:

  • Nebenläufigkeitsprogramme in java.util.concurrent

Java 1.4

JSR 59

Sprachänderungen:

Bibliotheksänderungen:

Java 1.3

Hauptsächlich kleinere Verbesserungen.

Plattformänderungen:

  • HotSpot JVM: Verbesserung gegenüber der ursprünglichen JIT

Java 1.2

Sprachänderungen:

Bibliotheksänderungen:

  • ein einheitliches Sammlung System
  • Swing als neues UI-System auf AWT

Plattformänderungen

  • eine echte JIT, die die Geschwindigkeit erheblich verbessert

Java 1.1

Sprachänderungen:

  • innere Klassen

Bibliotheksänderungen:

  • AWT-Ereignis ändert sich
  • JDBC, RMI
  • Betrachtung

Java 1.0

Erstveröffentlichung, alles neu ;-)

Joachim Sauer
quelle
2
Die Erklärung, warum Java 6 so kleine Änderungen hatte, scheint auf der JSR 270-Seite zu stehen : Es sieht so aus, als hätten sie damals mit der Idee von zeitgesteuerten Releases experimentiert, anstatt von funktionsgesteuerten : "Ziel ist es, regelmäßig Feature-Releases zu versenden 18-24-Monats-Zyklus ... "
Mücke
@gnat: das hört sich ungefähr richtig an, aber die Antwort ist so vollgestopft, dass ich zusätzliche Informationen wie diese aus der Liste streichen möchte.
Joachim Sauer
@JoachimSauer yup, deine antwort klingt ungefähr richtig ohne diese details "eingebettet". Obwohl ... es würde wahrscheinlich nicht schaden, wenn Sie Links zu den jeweiligen Umbrella-JSRs für 1.4 und spätere Releases hinzufügen, die dies implizit abdecken würden, zusammen mit vielleicht weiteren Details
gnat
1
Hey Axel, bitte fühle dich überhaupt nicht schlecht. Lasst uns auf jeden Fall das Web beschuldigen! Warum können wir den Inhalt von Wikipedia hier auf PE nicht erneut veröffentlichen? Warum müssen wir zum Kopieren und Einfügen zurückgreifen? Warum gibt es in pE keinen Mechanismus zum Anzeigen von Inhalten aus Wikipedia? IMO sollte dies grundlegendes Zeug sein. Stellen Sie sich vor, Java 1.9 kommt heraus, was Sie denken. Welche Seite wird auf dem neuesten Stand gehalten? Diese Antwort ist nur Kopieren und Einfügen, Programmierer sollten es vermeiden, nein?
AndreasScheinert
1
@AndreasScheinert: Der Fokus von Wikipedia unterscheidet sich von SE. Der vollständige Wikipedia-Artikel wäre definitiv zu viel Information für diese Frage. Ich denke auch, dass die Lizenzen das Kopieren und Einfügen von Inhalten nicht zulassen.
Joachim Sauer