web-dev-qa-db-ja.com

これらの異なるJavaのバージョンは何ですか?

Java journey、(私はすでにC++に手を出しています)を始めようとしていますが、Javaのすべての異なるバージョンについて本当に混乱しています:

  • JavaSE
  • JavaEE
  • JavaFX
  • 等.

誰かがこれらを詳細に説明できますか?

64
Patryk

Java Proper

Java Standard Edition は、一般的なコンピューティング用に設計された「通常の」バージョンです。これは、Javaの他のすべてのバリアントと同様に、完全に自動化されたガベージコレクションを備えた仮想マシン上で実行される、強く静的に型指定されたバイトコードコンパイルされたオブジェクト指向言語です。言語のほとんどの機能を備えています。アプリケーションの例は、MinecraftやArgoUMLなどのアプリケーションです。スタンドアロンのデスクトップアプリケーションとして、またはアプレットとしてWebページに埋め込まれたアプリケーションとして実行できます。

Java Enterprise Edition は別の言語ではありませんが、Application Server実装内で実行されるソフトウェアを生成するように設計されたインターフェース仕様です。ここでの主な違いは、Enterprise Edition Interface仕様に準拠するアプリケーションサーバーへの展開用に設計されていることです。 Java SEはスタンドアロンサーバーを作成するために使用できますが、標準化されたインターフェイスと方法で組み込まれた仕様が含まれていませんJava EEです。例は次のようになります。 Glassfish(Java EEリファレンス実装)、JBossなどで実行するように設計されたアプリケーション.

Java Micro Edition はJavaモバイルデバイスで実行するように設計されています。これはではないことに注意してくださいAndroidと同じです。Java MEは、Java SEよりもモバイルハードウェアを処理するように設計されています。携帯電話としてPantec Easeを使用しています。 、それはJava MEを実行します。

Java Card は、スマートATMカードのような本当にローエンドのデバイスを目的とした「さらに小さい」ものです。はい、実際にJavaが付いているものもあります。

JavaFX は、リッチインターネットクライアントGUIアプリケーションを構築するために設計されたフレームワークです。

JVM言語ファミリ

まず、 [〜#〜] jvm [〜#〜] です。これは、アセンブリ言語によく似たコンパイル済みbytcodeを実行するスタックベースの仮想マシンです。最適化により、非常に特殊な状況で非常に高速に実行できます。

実際のOracleはこれで終わりですJavaスタッフ、JVMで一般的に使用されるものです。これらの言語はすべてJava相互運用機能を備え、通常ほとんどのまたはJavaライブラリのすべて。

Groovy は、Javaよりも簡単で強力な代替手段として請求される、より簡潔な構文を持つオブジェクト指向の動的型付け言語です。これはJavaの一種の拡張言語として設計されており、JavaファイルをGroovyプログラムにドラッグアンドドロップできるようになっています。Web開発用に一般的に関連付けられているフレームワーク Grails

Scala は、非常にスケーラブルになるように設計されたかなり最近の(2003)ハイブリッドオブジェクト指向/関数型言語であるため、その名前です。 TwitterはScalaのヘビーユーザーです。

Clojure は、LISPファミリの最近(2007年)の関数型言語です。最初から重い並行プログラミング用に設計されています。これの良いソフトウェアの例はありませんが、それを使用している会社はたくさんあります。

Jython および JRuby は、それぞれJava Python および Ruby のバイトコードバージョン) 。

Jaskell (JVMのHaskell)のように、JVMには他にも多くの言語がありますが、あいまいで学術的な実験になる傾向があります。

関連するもの

Android はJavaを使用しますが、Dalvikレジスタベースのマシンで実行されます。Dalvikは現在、その採用者であるGoogleに対する 訴訟 の対象です。 Androidは本質的にJava異なるライブラリのセットを持つSEです。

NetbeansEclipse は、Java IDEについて広く話題になっている2つです。どちらか一方について質問すると、クロージャーが呼び出されますが、 tはプログラミングの概念を意味します。

無関係なもの

Javascript はJavaではありません...それは、Javaの人気を利用するためにその名前が付けられ、それ以来混乱は煩わしくなっています。

Rhino in the Room

Rhino は、JavaScriptコードをJavaコードに変換し、どこかで実行できるようにするJavascriptインタープリターです。これは独立した言語ではありませんが、他の言語と同じように、独自の癖のセットです。Rhinoは、MozillaがCベースのSpiderMonkeyインタープリターの代替として開発しました。Rhinoは、通常、JavaScriptをJavaプログラム内に埋め込むために使用されます。

Nashorn は、JDK 8用にOracle(おそらくドイツ語レベルの効率)で開発されたもので、Javaに埋め込まれたJavascriptの新しい標準のようです。これは、RhinoがJavaのメイン実装に使用されなくなったことを意味します。 Rhinoプロジェクトにとってこれが何を意味するかは現時点では不明です。

107
World Engineer