it-swarm.dev

Wofür sind diese verschiedenen Java -Versionen?

Ich bin gerade dabei, meine Java Reise, (ich habe mich bereits in C++ versucht) zu starten, aber ich bin wirklich verwirrt über all die verschiedenen Versionen von Java:

  • JavaSE
  • JavaEE
  • JavaFX
  • usw.

Kann jemand diese im Detail erklären?

64
Patryk

Java Proper

Java Standard Edition ist die "normale" Version für das allgemeine Rechnen. Wie alle anderen Java-Varianten ist es eine stark statisch typisierte, bytecodekompilierte, objektorientierte Sprache, die auf einer virtuellen Maschine mit vollautomatischer Speicherbereinigung ausgeführt wird. Es hat die meisten Funktionen 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, sondern sind 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 konzipiert ist, die den Spezifikationen der Enterprise Edition-Schnittstelle entsprechen. Java SE kann zum Schreiben von eigenständigen Servern verwendet werden, enthält jedoch keine standardisierten Schnittstellen und Spezifikationen, die speziell für diese Zwecke entwickelt wurden Java EE ist. Beispiele wären Anwendungen, die für die Ausführung auf Glassfish (Java EE-Referenzimplementierung), JBoss usw.) entwickelt wurden.

Java Micro Edition ist Java wurde für die Ausführung auf Mobilgeräten entwickelt. Es sollte beachtet werden, dass dies nicht dasselbe wie Android ist. Java ME wurde entwickelt, um mit mobiler Hardware besser umzugehen als Java SE. Ich verwende ein Pantec Ease als Mobiltelefon, es läuft Java ME.

Java Card ist noch "kleiner" und richtet sich an wirklich Low-End-Geräte wie Smart ATM-Karten. Ja, einige von ihnen haben tatsächlich Java auf ihnen).

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

JVM-Sprachfamilie

Zuerst das JVM . Dies ist eine stapelbasierte virtuelle Maschine, auf der kompilierter Bytcode ausgeführt wird, der der Assemblersprache sehr ähnlich sieht. Durch die Optimierung kann es in sehr speziellen Situationen recht schnell ausgeführt werden.

Das war's für das eigentliche Oracle Java Stuff, jetzt für das Zeug, das normalerweise in der JVM verwendet wird. Alle diese Sprachen verfügen über Java Interops und können normalerweise die meisten aufrufen oder alle Java Bibliotheken.

Groovy ist eine objektorientierte, dynamisch typisierte Sprache mit einer prägnanteren Syntax, die als einfachere und leistungsfähigere Alternative zu Java in Rechnung gestellt wird. Es wurde als eine Art Erweiterungssprache für Java entwickelt, die das Ziehen und Ablegen von Java - Dateien in Groovy-Programme) ermöglicht. Es verfügt über ein Framework, das üblicherweise für die Webentwicklung als Grale .

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

Clojure ist eine neuere (2007) Funktionssprache der LISP-Familie. Es ist von Anfang an für eine starke gleichzeitige Programmierung ausgelegt. Ich habe kein gutes Softwarebeispiel 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 sie sind eher 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, dessen Anwender. Android ist im Wesentlichen Java SE mit einem anderen Satz von Bibliotheken.

Netbeans und Eclipse sind die beiden am häufigsten diskutierten Java IDEs. Wenn Sie Fragen zu einem gegen den anderen stellen, wird der Abschluss ausgelöst, und ich tue es nicht. t bedeutet das Programmierkonzept.

Unrelated Stuff

Javascript ist überhaupt kein Java. Es wurde so genannt, dass es seitdem ärgerlich ist, Javas Popularität und die Verwirrung auszunutzen.

Das Nashorn im Raum

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

Nashorn , entwickelt von Oracle (möglicherweise mit deutscher Effizienz) für das JDK 8, 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.

107
World Engineer