Javaプログラミング言語のアプリケーションプログラミングインターフェース(API)には、2種類あります。
以下は、Javaのアプリケーションプログラミングインターフェース(API)の一部リストです。
以下は非常に不完全なリストです。Javaプラットフォームで利用可能なAPIの数は膨大です。
リアルタイムJavaとは、プログラマーがJavaプログラミング言語でリアルタイムシステムの要求を満たすプログラムを作成できるようにする、複数の技術の組み合わせを包括的に指す用語である。
Javaの高度なメモリ管理、スレッド処理と並行処理のネイティブサポート、型安全性、そして比較的シンプルな構造は、多くの分野での利用需要を生み出してきました。リアルタイム計算のニーズに対応するため、その機能は強化されています。
リアルタイム処理における典型的な困難を克服するために、Java コミュニティはリアルタイム Java の仕様である JSR001 を導入しました。その結果として生まれたReal-Time Specification for Java (RTSJ) の実装が数多く登場しており、Timesys のリファレンス実装、IBM の WebSphere Real Time、Sun Microsystems の Java SE Real-Time Systems [1] 、 Aonix PERC、aicas の JamaicaVM などがあります。
RTSJは、スレッドモデルの仕様を最小限(わずか2つ)に規定し(他のモデルをVMに組み込むことも可能)、ガベージコレクションの対象とならないメモリ領域と、ガベージコレクタによってプリエンプトされないスレッドを提供することで、重要な課題に対処しました。これらの領域は、代わりに領域ベースのメモリ管理を使用して管理されます。
Javaリアルタイム仕様(RTSJ)は、Javaプログラミング言語でリアルタイムコンピュータプログラミングを可能にするインターフェースと動作の改良点のセットです。RTSJ 1.0は、Javaコミュニティプロセス(JCP)の下でJSR 1として開発され、2001年11月に新しい標準が承認されました。RTSJ 2.0はJSR 282の下で開発されています。ドラフト版はJSR 282 JCPページで入手できます。詳細については、RTSJ 2.0をご覧ください。