JavaにおけるAPIとクラスライブラリの違い

Javaの勉強をしていると、必ず出会うであろう言葉に『API』と『クラスライブラリ』という言葉があります。
『クラスライブラリ』についてはすんなり受け入れられても『API』という言葉が色々な場所で使われているせいもあって、どちらが何を意味しているのかが分からなくなったり、そもそも違いが分からなくなったりすることがあります。

今回はそんな『API』と『クラスライブラリ』について、両者の意味と違いについてをご紹介します。

APIとは?

APIというのは『Application Programming Interface』という言葉の略称です。
一般的には『外部のソフトウェアが持つ機能の一部を切り取って、他のプログラムで使うための仕組み』というような意味合いで使われる言葉です。

よく使われる例は『Google マップ』ですね。
マップの機能を自分が作ったプログラムに実装したいと思ったときに、マップのプログラムまで1から作るとしたらとんでもない労力が発生してしまいます。個人開発どころではありませんよね(笑)

APIの仕組みを利用すれば、自分の作ったプログラムから『Googleマップ』の機能を呼び出して利用することが出来るようになり、開発効率の向上などにつなげることが出来ます

クラスライブラリとは?

『クラスライブラリ』はJavaに初めから標準で添付されているクラスの集まりのことを指しています。
このクラスライブラリに含まれるクラスのことを『標準クラス』や『標準API』と呼んだりします。

『標準クラス』というのは、プログラムを作成するうえでよく使われる機能を提供してくれるクラスのことで、Javaを学んだことがある人であれば必ず見たことがあると言っても過言ではないであろう『System.out.println()』の構文も、標準クラスである『java.lang』パッケージの『System』クラスに含まれています。

その他にも、『java.util.Arrays.sort()』であったり、『java.lang.String.substring()』など皆さんが使ったことがあるかもしれないメソッドもクラスライブラリに含まれるものです。

何気なく使っていたかもしれませんが、並べ替えをしたり、文字列を加工したり、というのも自分でプログラム化をしようとすると中々難しい機能ですよね。

JavaにおけるAPIとクラスライブラリの違い

ここまで、一般的に『API』と呼ばれるものと、『クラスライブラリ』というものをご紹介しました。
両者の違いについても何となくわかっていただけることが出来たとは思いますが、注意しなければならないこととして、『クラスライブラリ』が『Java API』という表現をされる場合があるということです。

Javaにおいて、よく使われるような機能を提供するインタフェースという意味で『Java API』という使い方がされるようですが、『一般的なAPI』と『Java API』は異なるものであると思っておいたほうがよいでしょう。

Javaに関連する書籍やサイトで『API』という言葉が出てきたら、一般的に使われる意味でのAPIなのか、クラスライブラリのことを指しているのかを適宜読み替える必要がありますね。

開発現場のドキュメントだった場合は、現場の先輩社員などに確認してみてください。