JavaTM は、次の特徴を持つ最近開発されたコンカレントなクラスをベースとしたオブジェクト指向のプログラミング言語です。
簡単。C++ 言語に似ていますが、C および C++ 言語のより複雑な機能の大部分は取り除かれています。Java は、以下の機能は提供していません。
プログラマが制御する動的メモリ
ポインタ演算
構造体
Typedefs
#define
オブジェクト指向。Java は、C++ 言語の基本オブジェクト技術を提供していますが、一部は強化し、一部は削除しています。
アーキテクチャとして独立。Java のソースコードは、アーキテクチャに依存しないオブジェクトコードにコンパイルされます。オブジェクトコードは、Java 実行時システムによって解釈されます。
移植性。Java は、最新の移植性標準を実装しています。たとえば、int は常に 32 ビットの 2 の補数となる整数です。ユーザインタフェースは、Solaris およびその他のオペレーティング環境に容易に実装される抽象化されたウィンドウシステムを通して構築されます。
分散型。Java には広範な TCP/IP ネットワーキング機能があります。ライブラリルーチンは、ハイパーテキスト転送プロトコル (HTTP) やファイル転送プロトコル (FTP) などのプロトコルをサポートしています。
堅牢。Java コンパイラと Java インタプリタの両方とも、広範なエラーチェックをサポートしています。Java がすべての動的メモリを管理し、配列境界をチェックし、その他の例外をチェックします。
安全。不当なメモリアクセスとなることも多い C および C++ 言語の機能は、Java 言語にはありません。インタプリタは、コンパイルされたコードにもいくつかのテストを実施し、不当なコードがないかチェックします。これらのテスト後、コンパイルされたコードは、オペランドスタックのオーバーフローやアンダーフローを発生させず、不当なデータを変換しないで、正当なオブジェクトフィールドのアクセスだけを実行します。さらに、すべてのオペコードパラメタの型は正当です。
高性能。アーキテクチャに依存しないマシン語に似た言語にプログラムをコンパイルするため、Java プログラムのインタプリタは小さく効率的になります。将来的には Java 環境は、実行時に Java バイトコードをネイティブなマシンコードにアセンブルもします。
マルチスレッド化。マルチスレッドは、Java 言語の中に組み込まれています。ユーザの処置を処理している間にイメージのロードなどを操作できるようにし、対話型処理の性能を向上させることができます。
動的。Java は、実行時まで呼び出されるモジュールをリンクしません。