Wofür gibt es diese verschiedenen Java-Versionen?


63

Ich bin gerade dabei, meine Java- Reise zu beginnen (ich habe mich bereits in C ++ versucht), aber die verschiedenen Java-Versionen verwirren mich sehr:

  • JavaSE
  • JavaEE
  • JavaFX
  • usw.

Kann jemand diese im Detail erklären?

Antworten:


107

Java Proper

Java Standard Edition ist die "normale" Version, die für die allgemeine Datenverarbeitung entwickelt wurde. Es ist, wie alle anderen Java-Varianten, eine stark statisch typisierte, bytecode-kompilierte, objektorientierte Sprache, die auf einer virtuellen Maschine mit vollautomatischer Garbage Collection ausgeführt wird. Es hat die meisten Merkmale der Sprache. Beispiele für Anwendungen wären Anwendungen wie Minecraft oder ArgoUML. Es kann als eigenständige Desktop-Anwendung oder als eingebettete Anwendung auf einer Webseite als Applet ausgeführt werden.

Java Enterprise Edition ist keine andere Sprache, es handelt sich jedoch um Schnittstellenspezifikationen, mit denen Software erstellt werden kann, die in einer Application Server-Implementierung ausgeführt wird. Der Hauptunterschied besteht darin, dass es für die Bereitstellung auf Anwendungsservern entwickelt wurde, die den Enterprise Edition-Schnittstellenspezifikationen entsprechen. Java SE kann zum Schreiben von eigenständigen Servern verwendet werden, enthält jedoch keine standardisierten Schnittstellen und Spezifikationen, die für Java EE entwickelt wurden. Beispiele wären Anwendungen, die für die Ausführung auf Glassfish (Java EE-Referenzimplementierung), JBoss usw. ausgelegt sind.

Java Micro Edition ist Java für die Ausführung auf Mobilgeräten. Es sollte angemerkt werden, dass dies nicht dasselbe ist wie Android. Java ME wurde entwickelt, um mit mobiler Hardware besser umgehen zu können als Java SE. Ich benutze ein Pantec Ease als Handy, es läuft Java ME.

Die Java Card ist sogar noch "kleiner" und eignet sich für wirklich Low-End-Geräte wie Smart ATM-Karten. Ja, einige von ihnen haben tatsächlich Java.

JavaFX ist ein Framework zum Erstellen von Rich Internet Client-GUI-Anwendungen.

JVM-Sprachfamilie

Erstens die JVM . Hierbei handelt es sich um eine stapelbasierte virtuelle Maschine, auf der ein kompilierter Bytecode ausgeführt wird, der der Assemblersprache sehr ähnlich sieht. Durch die Optimierung kann es für sehr spezielle Situationen recht schnell ausgeführt werden.

Das ist es für das eigentliche Oracle Java-Zeug, jetzt für das Zeug, das die Leute üblicherweise in der JVM verwenden. Alle diese Sprachen verfügen über Java-Interops und können in der Regel die meisten oder alle Java-Bibliotheken aufrufen.

Groovy ist eine objektorientierte, dynamisch typisierte Sprache mit einer prägnanteren Syntax, die eine einfachere und leistungsfähigere Alternative zu Java darstellt. Es wurde als eine Art Erweiterungssprache für Java entwickelt, mit der Java-Dateien nahezu per Drag & Drop in Groovy-Programme verschoben werden können. Es verfügt über ein Framework für die Webentwicklung, das als Grails bezeichnet wird .

Scala ist eine relativ junge (2003) hybride objektorientierte / funktionale Sprache, die hoch skalierbar ist, daher der Name. Twitter ist ein starker Nutzer von Scala.

Clojure ist eine neuere (2007) funktionale Sprache der Lisp-Familie. Es wurde von Anfang an für zeitgleiches Programmieren entwickelt. Ich habe kein gutes Software-Beispiel für dieses, aber es gibt eine Reihe von Unternehmen, die es verwenden.

Jython und JRuby sind die Java-Bytecode-Versionen von Python bzw. Ruby .

Es gibt eine Reihe anderer Sprachen für die JVM wie Jaskell (Haskell für die JVM), aber es handelt sich in der Regel um obskure / akademische Experimente.

Verwandte Sachen

Android verwendet Java, läuft jedoch auf dem Dalvik-Register-basierten Computer. Dalvik ist derzeit Gegenstand einer Klage gegen Google, seinen Nutzer. Android ist im Wesentlichen Java SE mit einem anderen Satz von Bibliotheken.

Netbeans und Eclipse sind die beiden am häufigsten diskutierten Java-IDEs. Das Stellen von Fragen über eins gegen das andere führt zum Abschluss und ich meine nicht das Programmierkonzept.

Unabhängiges Zeug

Javascript ist überhaupt kein Java. Es wurde gesagt, dass es seitdem ärgerlich ist, die Popularität von Java zu nutzen und die Verwirrung auszunutzen.

Das Nashorn im Raum

Rhino ist ein Javascript-Interpreter, der Javascript-Code in Java-Code umwandelt, der dann irgendwo ausgeführt werden kann. Es ist keine eigene Sprache "per se", aber wie alles andere hat es seine eigenen Macken. Rhino wurde von Mozilla als Alternative zum C-basierten SpiderMonkey-Interpreter entwickelt. Rhino wird normalerweise verwendet, um Javascript in ein Java-Programm einzubetten.

Nashorn , von Oracle (möglicherweise mit deutscher Effizienz) für das JDK 8 entwickelt, scheint der neue Standard für eingebettetes Javascript in Java zu sein. Dies würde bedeuten, dass Rhino nicht mehr für die Hauptimplementierung von Java verwendet wird. Was dies für das Rhino-Projekt bedeutet, ist derzeit unklar.


1
Danke vielmals! Das habe ich gesucht :) Noch eine Frage: J2SE, J2EE usw. Dies sind nur neuere Versionen von SE, EE usw.?
Patryk

8
Ja, J2EE und J2SE sind Versionen zwei der Java Enterprise Edition bzw. Standard Edition. Dieses Benennungsschema wird jedoch nicht mehr befolgt. Aktuelle Versionen werden als Java SE 6 (oder 5/7) und Java EE 5 (oder 6) bezeichnet.
BenR

1
Gibt es ein Java für Smartcards? Der Geist verwirrt.
Megan Walker

1
Eine Antwort, um alle zu regieren!
Benutzer

1
Rhino ist seit JDK8 veraltet (entfernt?). Nashorn ist das neue Nashorn.
Silviu Burcea
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.