Java プログラミング言語の アプリケーション プログラミング インターフェイス (API)には 2 種類あります。
- Android (Google)、SE (OpenJDK および Oracle)、 MicroEJに含まれる公式のコア Java API 。これらのパッケージ (java.* パッケージ) はコア Java 言語パッケージであるため、Java 言語を使用するプログラマーは、Java 言語を有効に活用するためにこれらのパッケージを使用する必要があります。
- 別途ダウンロードできるオプションの API。これらの API の仕様は、世界中のさまざまな組織 (Alljoyn、OSGi、Eclipse、JCP、ESR など) に従って定義されています。
以下は、Java のアプリケーション プログラミング インターフェイス (API) の一部です。
APIについて
Java プラットフォームで利用できる API の数が膨大であるため、次のリストは非常に不完全です。
- Office 準拠ライブラリ
- 圧縮
- LZMA SDK、人気の7-Zipファイル アーカイブ ソフトウェアで使用されるSDKの Java 実装(こちらから入手可能)
- 翻訳
- ゲームエンジン
- スリック
- jMonkey エンジン
- JPCTエンジン
- いいえ
- リアルタイムライブラリ
リアルタイム Java は、プログラマーが Java プログラミング言語でリアルタイム システムの要求を満たすプログラムを作成できるようにするテクノロジの組み合わせを表す包括的な用語です。
Java の洗練されたメモリ管理、スレッドと並行処理のネイティブ サポート、型の安全性、比較的シンプルなことから、多くの分野で Java を使用する需要が生まれています。Java の機能は、リアルタイムの計算ニーズをサポートするために強化されています。
- Java は厳密な優先度ベースのスレッド モデルをサポートしています。
- Java スレッドは優先度をサポートしているため、Java ロック メカニズムは優先度の継承や優先度上限プロトコルなどの優先度の逆転を回避する手法をサポートします。
典型的なリアルタイムの困難を克服するために、JavaコミュニティはリアルタイムJavaの仕様であるJSR001を導入しました。その結果、 Javaのリアルタイム仕様(RTSJ)の実装が数多く登場しました。これには、Timesysのリファレンス実装、IBMのWebSphere Real Time、Sun MicrosystemsのJava SE Real-Time Systems、[1] Aonix PERC、aicasのJamaicaVMが含まれます。
RTSJ は、スレッド モデルの最小仕様 (2 つのみ) を義務付け (他のモデルを VM にプラグインできるようにし)、ガベージ コレクションの対象とならないメモリ領域と、ガベージ コレクターによってプリエンプトされないスレッドを提供することで、重大な問題に対処しました。これらの領域は、代わりに領域ベースのメモリ管理を使用して管理されます。
Java のリアルタイム仕様
Real -Time Specification for Java (RTSJ) は、Java プログラミング言語でリアルタイム コンピュータ プログラミングを可能にする一連のインターフェイスと動作の改良です。RTSJ 1.0 は、2001 年 11 月に新しい標準が承認された Java Community Process の下で JSR 1 として開発されました。RTSJ 2.0 は、JSR 282 の下で開発されています。ドラフト バージョンは、JSR 282 JCP ページで入手できます。詳細については、RTSJ 2.0 を参照してください。
- ウィンドウライブラリ
ウィンドウ ライブラリは、Streams Processing Language (SPL) ランタイム C++ API および SPL Java™ Operator API で使用できるクラスのセットです。このライブラリは、SPL ウィンドウ セマンティクスに従うウィンドウを必要とするプリミティブ オペレータを実装するために使用されます。ウィンドウ ライブラリを使用すると、オペレータ間で一貫したウィンドウ ポリシー セマンティクスが提供され、オペレータの実装が簡素化されます。
SPL は、タンブリング ウィンドウとスライディング ウィンドウの両方を提供します。どちらのタイプのウィンドウも、タプル削除ポリシーがトリガーされるまで、すべての受信データをメモリ内に保持します。プリミティブ オペレーターに必要な機能を SPL ウィンドウ構造によって提供されるセマンティクスを使用して構築できる場合は、ウィンドウの SPL サポートを使用します。
SPL 標準ツールキットの、ウィンドウ ライブラリと構文を使用する演算子の 1 つの例は、Aggregate演算子です。最近受信したタプルをバッファリングするが、ウィンドウ ライブラリと構文を使用しない演算子の 1つDeDuplicateは、演算子です。このアクションは、この演算子のエビクションおよびトリガー セマンティクスが SPL によって提供されるものとは異なるために発生します。この演算子は、一意のタプルのみを保持し、時間枠内で受信したすべての繰り返しタプルを破棄する必要があります。
ウィンドウ ライブラリを使用すると、開発者はさまざまなエビクション ポリシーとトリガー ポリシーを指定できますが、ウィンドウ ポリシーの詳細とは関係なくイベント処理アクションを実装できます。SPL ウィンドウ句を利用する C++ と Java でプリミティブ演算子を実装する場合、いくつかの違いがあります。
C++ 実装では、開発者はウィンドウ ライブラリを使用する義務はありません (ライブラリを使用することをお勧めします)。開発者は、特定のオペレータ インスタンスの指定されたウィンドウ ポリシーを取得するためだけに、SPL オペレータ コード生成 API を自由に使用できます。その後、他のコンテナを使用してコードを生成できます。さらに、開発者はコード生成時に有効なウィンドウ構成をチェックできます。
Java 実装では、開発者はウィンドウ ライブラリを使用する必要があります。このアクションは、com.ibm.streams.operator.window.StreamWindowListener<T>ウィンドウによって生成されたイベントを処理する を実装するクラスを登録することで実現(com.ibm.streams.operator.window.StreamWindow<T>できます。Java 演算子はコード生成に基づいていないため、この使用が必要です。その結果、ウィンドウはランタイムによって自動的に管理され、SPL ウィンドウのセマンティクスが保証されます。開発者は、特定の入力ポートに関連付けられたウィンドウ ポリシーをチェックすることで、実行時に有効なウィンドウ構成を確認できます。
- 標準ウィジェットツールキット(SWT)
- 物理学ライブラリ
- 翻訳
- JBullet
- ダイナ4j
参照
外部リンク
- APISonar - Java API の例を検索する
