【JavaAPIとは?】標準APIの使い方とリファレンスを解説!

Javaには開発を行うために便利な標準APIがたくさん用意されています。

そこで、この記事ではよく使用するAPIや便利なAPIなどについて解説いたします。


【基礎】Javaのリファレンスとは
【基礎】JavaのAPIとは
【基礎】JavaのAPIドキュメントの読み方
【発展】代表的なインタフェースの解説
【発展】代表的なクラスの解説
【発展】その他の便利なAPI
【発展】旧バージョンのAPI

JavaのAPIドキュメントは情報量が膨大で、書いてあることもなんだか難しそうで、慣れないと戸惑ってしまうかもしれません。

しかし、APIをうまく使いこなすことがJavaプログラマとして上達するための近道となります。

ここではそんなJavaの標準APIについて詳しく解説していきます!

なお、Javaの記事については、こちらにまとめています。

目次

Javaのリファレンスとは

shutterstock_524370115
Javaのリファレンスとは、オラクル社が公開しているJavaを開発するために必要な情報が書かれているドキュメントのことを言います。

Javaのリファレンスは、Javaをインストールして開発を行うための情報や、Javaの仕様、プログラミングをするために必要なパッケージやクラスなどの情報について網羅されている公式のリファレンスのことを指します。

以下ではドキュメントを「基本」「少し詳しい人向け」「ツール関係」と分けてそれぞれ簡単に解説いたします。

初心者の方には難しい内容も含まれていますので、今の段階ではこのようなドキュメントがあるということを頭の片隅にでも留めておいていただければと思います。

基本ドキュメント

Java SE APIドキュメント
Java SE(Java Platform, Standard Edition)及びJDK(Java Development Kit )に関するドキュメントの一覧があるページです。過去のバージョンを遡って閲覧することもできます。

開発者ガイド
Java SE及びJDKで開発するために必要な情報が網羅されています。

少し詳しい人向けのドキュメント

JavaFX APIドキュメント
Java仮想マシンで動作するGUIライブラリのAPIドキュメントです。

Java言語および仮想マシン仕様
Java言語および仮想マシンについての仕様が網羅されているドキュメントです。全て英文です。

ツール関係のドキュメント

Java SEツール・リファレンス(UNIX)
UNIXでJava Platform, Standard Editionのツールを使用するためのリファレンスです。

Java SEツール・リファレンス(Windows)
WindowsでJava Platform, Standard Editionのツールを使用するためのリファレンスです。

JavaのAPIとは

shutterstock_448000054
JavaのAPI(Application Programming Interface )は、Javaでアプリケーションを作成するために必要となる標準機能を提供するインタフェースのことです。

APIについては以下の記事で詳しく解説していますので、ぜひ参考にしてください!

Javaには多数の機能が提供されており、Javaの機能を有効に使うためにはAPIの使用が必須となります。

開発者はJavaのルールに従ってAPIを使用することにより、自分で1から実装することなく用意されたAPIを使用することで効率よく開発することができます。

例えば、以下のようにコンソールに文字列を出力するおなじみの処理も、Javaが提供しているAPIを使用しています。

System.out.println("Hello World");

これは、Systemクラスのoutというクラスフィールドを取得し、outクラスフィールドで使用できるprintlnメソッドを呼出して、引数で指定された変数や文字列を出力するJavaのAPIです。

JavaのAPIドキュメントの読み方を知ろう

shutterstock_397574674
ここではJavaのAPIドキュメントの読み方について見ていきましょう。

javaの最新バージョンであるJava 8のAPIは以下より確認できます。
https://docs.oracle.com/javase/jp/8/docs/api/

APIのリファレンスにアクセスしてみると、画面が3分割されていて、左上にパッケージ、左下にはクラスのリンクがそれぞれ記載されています。

javaapi_image1
Java(tm) Platform, Standard Edition 8

APIの種類について知ろう

Javaはパッケージを指定することで、そのパッケージに含まれる機能を使用してプログラミングを行います。

パッケージとはJavaの名前空間にあるクラスインタフェースをまとめた機能です。

クラスやインタフェースにはさらに固有の機能を使うためのメソッドが用意されています。

JavaのAPIでは、

・パッケージ
・パッケージで使用するクラス・インタフェース
・クラス・インタフェースで使用するメソッド

などがそれぞれグループごとにまとめられています。

Javaなどのオブジェクト指向言語では、パッケージやクラス・インタフェース、メソッドなどをそれぞれモノ(オブジェクト)として表現されます。

オブジェクト指向については以下の記事でも詳しく解説していますので、ぜひ参考にしてください!


脱初心者のためのオブジェクト指向再入門
更新日:2024年3月1日

クラスの説明の読み方

ここではJavaのAPIからStringクラスを例に読み方を紹介します。

JavaのAPIであるJava(tm) Platform, Standard Edition 8にアクセスしてクラスからStringを探して選択してみましょう。

javaapi_image2

クラスStringのページを上から順に確認すると、まずStringクラスを使うためには、Java.langというパッケージが必要ということが分かります。

さらにStringクラスの概要や定義の方法、使い方が詳細に解説されています。

フィールド、コンストラクタ、使用できるメソッドなど、Stringクラスを使うために必要な情報も網羅されていることがわかります。

メソッドの説明の読み方

メソッドは上述したように、そのクラスやインタフェースで使用できる機能のことを指します。

たとえば、Stringでどのようなメソッドが使用できるかを確認するには、APIのStringクラスのページをスクロールしていくと、以下のようなメソッドの一覧が表示されます。

javaapi_image3

デフォルトでは使用できる全てのメソッドが表示されていますが、「静的メソッド」「インスタンス・メソッド」「具象メソッド」「非推奨メソッド」をそれぞれ選択して表示することもできます。

メソッドの一覧の中から、例えば文字列を比較するequalsメソッドの使い方を知りたい場合は、「メソッドと一覧」からequalsのリンクをクリックすると、equalsについて解説されているリンク先に飛ぶことができます。

javaapi_image4

リンク先ではメソッドの解説や「オーバーライド」「パラメータ」「戻り値」「関連項目」などの内容が解説されています。

javaapi_image5

インタフェース

shutterstock_330786716
ここではJavaのAPIの中から、よく使うインタフェースについて紹介していきます。

インタフェース(interface)とは、具体的な内容を書かずにメソッドの型のみを宣言したクラスのようなものを言います。

インタフェースの詳しい解説については以下の記事を参考にしてください!

List

Listは格納した順にindexが生成され、値と紐づけされるコレクションです。

Listはindexを指定して要素にアクセスしたり、Listで格納した値を検索することもできます。

使用するパッケージ:
java.util

オブジェクトの生成:

List<String> list = new ArrayList<>();

代表的なメソッド:
add(E e), get(int index), size()

使用例:sizeメソッドで要素数を調べる

//オブジェクトの生成
List<String> list = 
new ArrayList<String>(
    Arrays.asList("apple", "orange", "melon"));
 
System.out.println("List = " + list);
System.out.println("要素数 = " + list.size());

実行結果:

List = [apple, orange, melon]
要素数 = 3

Listインタフェースの使い方については、以下の記事でも詳しく解説しています!

Map

Mapは「キー」と「値」の2つの要素で構成されるコレクションです。

Mapの値にアクセスするにはキーを指定します。

使用するパッケージ:
java.util

オブジェクトの生成:

Map<String, String> map = new HashMap<>();

代表的なメソッド:
put(K key, V value), containsKey(Object key)

使用例:値の追加

//オブジェクトの生成
private static Map<String, String> map = new HashMap<>();
static {
     map.put("item1", "apple");
     map.put("item2", "orange");
     map.put("item3", "melon");
}
 
public static void main(String[] args) {
    for(Map.Entry<String, String> entry : map.entrySet()) {
        System.out.println(entry.getKey() + " : " + entry.getValue());
    }
}

実行結果:

item2 : orange
item1 : apple
item3 : melon

Mapインタフェースの使い方については、以下の記事でも詳しく解説しています!

Set

Set重複しない要素の集まりがあるコレクションです。

Listはindexの順番通りに並んだ要素のコレクションで重複した要素を持つことができますが、Setでは重複した要素を持つことはできません。

使用するパッケージ:
java.util

オブジェクトの生成:

Set<String> set = new HashSet<>();

代表的なメソッド:
add(E e), remove(Object o), size()

使用例:値の追加

public static void main(String[] args) {

    //オブジェクトの生成
    Set<String> set = new HashSet<>();
    Collections.addAll(set, "apple", "orange", "melon");

    for (Iterator<String> itr = set.iterator(); itr.hasNext();) {
        System.out.println(itr.next());
    }
}

実行結果:

orange
apple
melon

Setインタフェースの使い方については、以下の記事でも詳しく解説しています!

クラス

shutterstock_526821523
ここではJavaのAPIの中から、よく使うクラスについて紹介していきます。

クラス(class)とはJavaプログラムの1番外側に記述し、1つの機能をひとまとめにしたもので、クラスの中には処理に必要なメソッドや変数などをまとめて記述します。

クラスの生成:

class クラス名{
…
}

クラスの使い方については次の記事でも詳しく解説しています。

String

StringクラスはJavaの中でも使用頻度が高いクラスです。

主に文字列を生成したり、結合・置換などの文字列操作を行うときに使用します。

使用するパッケージ:
java.lang

オブジェクトの生成:

//文字列を生成
String str1 = "Hello";

//オブジェクトを生成して文字列を指定
String str2 = new String("Java!!");

代表的なメソッド:
format(String format, Object… args), indexOf(String str), isEmpty()

使用例:値の追加

public static void main(String[] args) {

    //文字列を生成
    String str1 = "Hello";

    //オブジェクトを生成して文字列を指定
    String str2 = new String("Java!!");
    
    System.out.println(str1);
    System.out.println(str2);
}

実行結果:

Hello
Java!!

Stringクラスの使い方については、以下の記事でも詳しく解説しています!

File

Fileクラスはファイルを扱うためのクラスです。

ファイルを扱うには、オブジェクトを生成して、生成したオブジェクトに対してファイルの読み込みや書き込みなどのファイル操作を行います。

使用するパッケージ:
java.io

オブジェクトの生成:

File file = new File(ファイル名);

代表的なメソッド:
delete(), exists(), getName()

使用例:ファイルの存在を調べる

public static void main(String[] args) {

    //オブジェクトの生成
    File file = new File("java.txt");
        
    // ファイルの存在確認
    if(file.exists()){
    System.out.println("ファイルが存在します。");
    }else{
    System.out.println("ファイルが存在しません。");
    }
}

Fileクラスの使い方については、以下の記事でも詳しく解説しています!

Calendar

Calendarクラスは、特定の日付や日時を指定して日付の操作を行うためのクラスです。

使用するパッケージ:
java.util

オブジェクトの生成:

Calendar cl = Calendar.getInstance();

代表的なメソッド:
add(int field, int amount), get(int field), getInstance(),

使用例:ファイルの存在を調べる

public static void main(String[] args) {

    //Calendarクラスのオブジェクトを生成
    Calendar cl = Calendar.getInstance();
    
    //現在の年月日を取得する
    System.out.println("YEAR:" + cl.get(Calendar.YEAR));
    System.out.println("MONTH:" + cl.get(Calendar.MONTH)); 
    System.out.println("DATE:" + cl.get(Calendar.DATE));
}

実行結果:

YEAR:2017
MONTH:8
DATE:17

CalendarクラスやDateクラスは月またぎの問題があり、0が1月となりますので注意しましょう。

Calendarクラスの使い方については、以下の記事でも詳しく解説しています!

ArrayList

ArrayListクラスは要素数が決まっていない動的な配列で、コレクションの中でもよく使用されます。

使用するパッケージ:
java.util

オブジェクトの生成:

List<データ型名> list = new ArrayList<データ型名>();

代表的なメソッド:
add(E e), get(int index), ort(Comparator<? super E> c)

使用例:値の追加

public static void main(String[] args) {

    //オブジェクトの生成
    List<String> list = new ArrayList<>();
 
    list.add("apple");
    list.add("orange");
    list.add("melon");
        
    for(Iterator it = list.iterator(); it.hasNext();) {
        System.out.println(it.next());
    }

}

実行結果:

apple
orange
melon

ArrayListクラスの使い方については、以下の記事でも詳しく解説しています!

Date

Dateクラスは、指定した日時を取得したり、日時を計算したいときに使用します。

使用するパッケージ:
java.util

オブジェクトの生成:

Date date = new Date();

代表的なメソッド:
compareTo(Date anotherDate), getTime(), toString()

使用例:現在の日付を取得

public static void main(String[] args) {

    //Dateクラスのオブジェクトを生成する
    Date date = new Date();
        
    //現在の日時を出力する
    System.out.println(date.toString());

}

実行結果:

Sun Sep 17 02:43:03 UTC 2017

Dateクラスの使い方については、以下の記事でも詳しく解説しています!

Math

Mathクラスは基本的な数値の計算を行うときに使用します。

使用するパッケージ:
java.lang

オブジェクトの生成:
Mathクラスはオブジェクトを生成しなくても使用できます。

代表的なメソッド:
abs(型 a), max(型 a), min(型 a), pow(型 a, 型 b), random()

使用例:乱数を生成する

public static void main(String[] args) {

    //乱数を生成し、整数に四捨五入する
    double dnum = Math.random()*10;
    dnum = Math.ceil(dnum);
    System.out.println(dnum);

}

実行結果:

2.0

その他のAPI

shutterstock_626435660
ここではJavaのリファレンスで公開されている便利なAPIを一部紹介します。

JavaMail

JavaMailはメールの送受信を行うことができるAPIです。

JavaMailを使用することによりメールアプリケーションを作成することができます。

JavaMailを使用するには、以下のページよりバージョンを選択し、「Download」ボタンよりダウンロード及びインストールを行います。
http://www.oracle.com/technetwork/java/index-138643.html

Servlet(サーブレット)

Servlet(サーブレット)サーバー側で動作するjavaアプリケーションを作成するときに使用します。

Servletと同じ機能としてJSPがありますが、JSPはPHPのようにHTMLの中にスプリクトを記述するのに対して、ServletはJavaプログラムと同様に作成します。

Servletは以下のページよりパッケージのダウンロード及びインストールを行います。
https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html

Servletについては次の記事で詳しく解説しています。

Applet(アプレット)

Applet(アプレット)Webブラウザで動作するJavaアプリケーションを作成するときに使います。

Javaアプレットは、Javaプラグインをブラウザにインストールすることで利用できます。

Webページの一部として埋め込まれて、Webブラウザ上で実行されます。

利用者の操作を受け付けたり、HTMLでは難しい動きのある内容を表示したりすることができます。

Applet(アプレット)については次の記事で詳しく解説しています。

JSON

JSONはテキストベースで言語に依存しないデータ形式です。

JSONはキーと値で構成されていて記述が容易なため、理解しやすい形式と言えます。

そんなJSONの使い方については、以下のJavaのドキュメントで解説されています。
http://www.oracle.com/technetwork/articles/java/json-1973242.html

JSONについては次の記事で詳しく解説しています。

sound

soundはMIDI (Musical Instrument Digital Interface)データの入出力や音声データの取り込み、再生などの処理を行うときに使用します。

soundは人が話した内容を処理して結果を返す音声認識でもよく使用されているパッケージです。

主なパッケージ:
javax.sound.midi
javax.sound.midi.spi
javax.sound.sampled
javax.sound.sampled.spi

旧バージョンのAPI

shutterstock_524798665
2017年現在のJavaの最新版はバージョン8ですが、過去のバージョンのAPIを確認したい場合は、以下のリンク先から確認することができます。

Java7のAPI
http://docs.oracle.com/javase/jp/7/api/

Java6のAPI
https://docs.oracle.com/javase/jp/6/api/

まとめ

ここではJavaのAPIに関して、

・Javaのリファレンスとは
・JavaのAPIとは
・JavaのAPIドキュメントの読み方
・代表的なインタフェースの解説
・代表的なクラスの解説
・その他の便利なAPI
・旧バージョンのAPI

などについて解説しました。

JavaのAPIは膨大な数に上り、あらゆる機能が用意されています。

そのため、APIのドキュメントを利用して効率の良いプログラミングを行うことが上達の近道となります。

もし、JavaのAPIについて忘れてしまったら、この記事を思い出してくださいね!

この記事を書いた人

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
ntakeshi@sejuku.net

目次