アプリが動作環境に依存しない
「Write once, run anywhere」(一度プログラムを書けば、どこでも動く)をスローガンとして掲げており、その言葉通り、Javaで作成したアプリケーションはJVM(Java Virtual Machine)と呼ばれる仮想マシンを通すことで、WindowsやmacOS等のOSを問わず動かすことができます。
つまり、アプリが動作環境に依存することはないため、Javaは色々な場所で利用されています。
堅牢性が高い
Javaは「オブジェクト指向」という考えを取り入れて作られたプログラムです。
「オブジェクト指向」とは、システム構成の考え方の一つです。
細かく説明すると長くなる(そもそもふわふわした概念みたいなものなので)ので、ざっくり説明すると、「システムを特定の役割ごとに分割し、それらをモノ(オブジェクト)として捉えたうえで、それらを組み合わせたり関係性を定義していくことでシステムを作ろう」という考え方です。
そして、そういったオブジェクト指向型プログラミング言語の中でも、Javaは文法がしっかりしていて、不具合の発生を防ぐことができる堅牢なプログラムを書くことができます。
そのため、Javaは規模が大きく、安定した稼働が求められるアプリ・システムの開発に適性が高いとされています。
例としては、利用者の多いWebアプリ(ユーザーの操作等によって結果が変わるWebページのこと)や銀行システム等です。
プログラムの実行速度が速い
Javaは、「コンパイラ型言語」です。
コンパイラ型言語とは、実際にプログラムを実行する前に、実行するためのファイルを作る(コンパイル)言語のことで、対になるものとして実行時に都度プログラムを読み込むインタプリタ型言語があります。
コンパイラ型言語は、コンパイルする際にプログラムの最適化の処理も行われるため、順を追って読み込むインタプリタ型に対して実行速度が速いです。
システムを利用するうえで、実行速度は大切な要素になるため、これは十分メリットになると言えます。
無駄なメモリを自動で解放してくれる
プログラムは、動作する際にメモリ領域を利用します。
そして、プログラム中で解放するよう明示しない限り、メモリは占有され続け、それが重なるとメモリが圧迫され、コンピューターの処理能力の低下につながります。
つまり、最適なパフォーマンスのためにはプログラム中で不要になったメモリの解放を明示しなければならないのが通常なのですが、これを自動的に行ってくれる機能があります。
これを「ガベージコレクション」というのですが、Javaにはそれが備わっており、パフォーマンスの向上に繋がっています。
安定性・安全性が高い
前項でも説明しましたが、Javaが誕生したのは1995年、つまり年齢で言えば25歳以上です。
加えて利用人口が圧倒的に多いことから、幾度となく改良がなされ、安定性が高いです。
また、仮想マシン内で動かしていることから安全性も高く、この点から金融系などからも使われているほどの信頼を得ています。