本記事では、「Java API」の特徴や使うメリット、「Java」のリファレンス、よく使われる「Java API」のインターフェース、クラス、メソッドについて解説します。
「Java API」という言葉を聞いたことがあっても、実際にどう使えばいいのかわからない方も多いのではないでしょうか。
本記事では「Java API」の特徴や使うメリットのほか「Java」のリファレンスや、よく使われる「Java API」のインターフェース、クラス、メソッドについて解説します。
目次
「Java API」とは、「Java」の開発を行う際に便利な機能やメソッドの集まりのことです。このAPIを「Java」のルールに基づいて使用することにより、Java開発者がコードをゼロから作成せずにプログラムの多くの一般的な機能を実装できるようになります。
「Java API」を使用することで、データベース操作、ネットワーキング、グラフィック処理などの多くのタスクを簡単に扱うことが可能です。
また、「Java」には初期から標準APIと呼ばれるAPIが登録されており、非常に豊富な種類があるため、プログラミングをさまざまな方向でサポートしてくれます。そのため、「Java」の環境をインストールするだけで、さまざまな機能を扱うことができるのです。
「Java API」が提供しているクラスには、主に以下のようなものがあります。
ここからは、これらのクラスについて解説します。
Stringクラスは、「Java API」が提供しているクラスの1つです。Stringクラスは文字列を処理するためのクラスで、文字列の操作に関するさまざまなメソッドが用意されています。
Stringクラスでよく使用されるメソッドは、主に以下の3つです。
lengthメソッドは文字列の長さを取得できるメソッドで、以下のように使用します。
public class main { public static void main(String[] args) { String val = "テスト文章"; System.out.println("この文字列の長さは「" + val.length() + "」です"); //「この文字列の長さは「5」です」と出力される } }
substringメソッドは文字列の一部を切り出すメソッドです。引数は整数で指定します。第二引数までの指定が可能で、第一引数のみを指定すると指定された位置から最後までを切り出し、第一引数に切り出しの開始位置、第二引数に終了位置を指定することでその間の文字列を切り出すことも可能です。
substringメソッドを使用したコードの例は、以下です。
public class main { public static void main(String[] args) { String val = "テスト文章です"; System.out.println(val.substring(3)); //「文章です」と出力される System.out.println(val.substring(0,3)); //「テスト」と出力される } }
equalsメソッドは、以下のように文字列を比較する際に使用します。
public class main { public static void main(String[] args) { String str1 = "テスト文章です"; String str2 = "てすと文章です"; if (str1.equals(str2)) { System.out.println("文字列は等しいです"); } else { System.out.println("文字列は等しくありません"); } //str1とstr2の値が違うため、「文字列は等しくありません」と出力される } }
ラッパークラスは、「Java API」が提供しているクラスの1つです。「Java」には、String型以外にもInt型やBoolean型などの基本データ型に対応した以下のようなクラスが用意されており、それらのクラスのことをラッパークラスといいます。
基本データ型 | ラッパークラス |
---|---|
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
ラッパークラスでよく使われるメソッドに、型変換があります。たとえば、Integerのメソッドである「parseInt」を使用することで、以下のサンプルコードのように文字列を整数に変換することが可能です。
public class Main { public static void main(String[] args) throws Exception { String str = "10"; int num = Integer.parseInt(str); System.out.println(str); //文字列の"10"が出力 System.out.println(num); //整数の10が出力 } }
コレクションクラスは、「Java API」が提供しているクラスの1つです。コレクションの中でもよく使われるクラスに、ArrayListクラスがあります。ArrayListクラスには、以下のようにリスト操作を行えるメソッドが用意されています。
メソッド | 説明 |
---|---|
add() | リストに要素を追加する |
get() | 指定した位置の要素をリストから取得する |
indexOf() | リストに格納されている要素のインデックス値を取得する |
size() | リストのサイズを取得する |
remove() | 指定した要素を削除する |
clear() | リストから要素をすべて削除する |
以下は、ArrayListの使用例です。
public class Main { public static void main(String[] args) throws Exception { //要素が空のリストを生成 List<String> list = new ArrayList<String>(); // リストに要素を追加 list.add("りんご"); list.add("みかん"); list.add("ぶどう"); //指定位置の要素を取得 String val = list.get(0); System.out.println(val); //「りんご」と出力 } }
日付クラスは、「Java API」が提供しているクラスの1つです。日付を扱うDateクラスを使用することによって、現在時刻の取得や日付の比較などを行えます。
基本的な使い方は、以下です。
public class Main { public static void main(String[] args) throws Exception { Date date = new Date(); System.out.println(date); //現在の時刻情報を出力 } }
Mathクラスは、「Java API」が提供しているクラスの1つです。平方根や指数関数など、数値処理をするためのメソッドがまとめられています。Mathクラスの主要なメソッドは、以下の通りです。
戻値 | メソッド | 説明 |
---|---|---|
int, long, float, double | abs() | 引数の絶対値を返す |
int, long, float, double | max() | 2つの引数のうち大きい方を返す |
int, long, float, double | min() | 2つの引数のうち小さい方を返す |
double | ceil() | 引数以上で一番近い整数値を返す |
double | floor() | 引数以下で一番近い整数値を返す |
double | sqrt() | 平方根を返す |
double | cbrt() | 立方根を返す |
double | random() | 擬似乱数を返す |
インターフェースは、特定の動作を保証するメソッドの契約を定義するための仕組みです。インターフェース自体はインスタンス化(プログラミングにおいて、特定のクラスからオブジェクト(インスタンス)を作成する過程)できませんが、クラスによって具体的な実装が提供されます。
このようにして、同じインターフェースを実装する異なるクラス間で、一貫した動作を確保することが可能です。「Java API」でよく使われるインターフェースは、以下3つがあります。
ここからは、これらのインターフェースについて解説します。
Listは、「Java API」でよく使われるインターフェースの1つです。データの要素が順番に並んでいるデータ構造をしていて、それぞれの要素にはインデックス番号が割り振られます。複数の値をまとめて管理できるインターフェースです。
Listインターフェースを実装したクラスとして、ArrayListクラスや、LinkedListクラスなどがあります。ArrayListは配列と仕組みが似ていますが、あとから要素を追加できるという特徴があるクラスです。
LLinkedListはArrayListと似ていますが、要素の追加や削除においてはLinkedListが優れています。しかし、特定の位置からのデータ取得は、ArrayListの方が速度面で優れているため、状況に応じて使い分けましょう。
Mapは、「Java API」でよく使われるインターフェースの1つです。キーと値を使用することで複数の値を管理できるインターフェースで、Mapインターフェースを実装したクラスにはHashMapやTreeMapなどがあります。
以下は、HashMapクラスを使用して値を扱う例です。
public class Main { public static void main(String[] args) throws Exception { //HashMapを生成 Map<String, String> map = new HashMap<>(); //要素の追加 map.put("key1", "りんご"); map.put("key2", "みかん"); System.out.println("キー1は" + map.get("key1")); //「キー1はりんご」 System.out.println("キー2は" + map.get("key2")); //「キー2はみかん」 } }
Setは、「Java API」でよく使われるインターフェースの1つです。こちらも値をまとめて扱うインターフェースですが、Listインターフェースなどとは要素を追加した順番を管理しないという大きな違いがあります。
またSetインターフェースでは、同じ値を複数追加することもできません。そのため、特定の要素が格納されているのかどうかを素早く確認するなどにも有効です。
Setインターフェースを実装したクラスには、代表的なものとしてHashSet、TreeSet、LinkedHashSetなどがあります。HashSetは要素の順序を保証しませんが、データの検索・追加・削除が高速です。
一方、TreeSetは要素を昇順にソートしますが、データの検索・追加・削除はHashSetより遅くなります。LinkedHashSetは要素の追加された順序を保持しますが、HashSetと比べて若干パフォーマンスが劣るため、こちらも使い分けが必要でしょう。
Javaにはいくつもの便利なAPIが用意されています。
ここからは、Oracleページ記載のJavaのリファレンスからピックアップして、上記4つの便利なAPIを紹介します。
1つ目の便利な「Java API」は、「JavaMail」です。「JavaMail」は、「Java」でメールアプリケーションを作成するためのAPIで、このAPIを使用することによって、メールの受信・送信を簡単な実装で行えます。
SMTPによるメールの送信、MIMEによるメッセージの取り扱い、POP3によるメールの受信、IMAP4によるメールの受信機能が提供されており、電子メールクライアントを開発することも可能です。
2つ目の便利な「Java API」は、「Servlet」です。「Servlet」はWebサーバー上で動作するJavaプログラムで、業務用のWebシステムを開発する際などに幅広く使用されています。
「Servlet」はバックエンドで動作するプログラムで、主にブラウザからの要求に対する処理や、送られてきたデータの処理などを行います。
また、HTMLなどのレスポンスデータの生成も行うことが一般的ですが、ユーザーインターフェースのすべてを作成するわけではありません。そのため、一部の機能は他のプログラムとの連携が必要になることもあります。
3つ目の便利な「Java API」は、「Applet」です。「Applet」は、アプリケーションの中に組み込まれることで動く「Java」のプログラムで、Webブラウザ上で動作することが多いです。
Webブラウザ上で、簡単にJavaで記述されたコードを実行させられることがメリットで、クライアントサイドで動作するため回線やサーバーに対する負荷も少なく抑えられます。
しかし、セキュリティ面での制限の多いことや、フロントエンド言語であるJavaScriptの存在などもあり「Java9」では非推奨となり、「Java11」完全に廃止されたため、最新のJavaを使用している方は注意が必要です。
4つ目の便利な「Java API」は、「sound」です。「Java」には「Java Sound API」という、サウンドデータやMIDIデータ入力・出力・制御ができるAPIが提供されています。
アプリケーション内で音を鳴らすほか、作曲アプリなどの作成にも使用できるAPIです。
リファレンスとは、オラクル社がWebサイトで公開しているJavaに関するドキュメント資料です。「Java」のインストール方法や基本的な使用方法、応用的な使い方まで、幅広い情報が載っています。
ここからは、「Java API」を利用する際におすすめの以下のリファレンスを3つ紹介します。
1つ目のおすすめのリファレンスは、「JavaSE APIドキュメント」です。
「Java SE(Java Platform, Standard Edition)」とは、「Java」で提供されているさまざまなAPIの中でも基本となるAPIをまとめたものです。
OracleのWebページから閲覧・ZIPファイルのダウンロードが可能で、過去のバージョンのものも同じく閲覧・ダウンロードできます。Java SEのAPIは多くのJavaアプリケーション開発で使用され、基本的なJavaプログラミングに必要な参考資料となります。
Androidアプリ開発においては、Android専用のAPIも多く使用されることから、「JavaSE APIドキュメント」以外のドキュメントも参照する必要があります。
2つ目のおすすめのリファレンスは、「JavaFX APIドキュメント」です。
「Java FX」とは、「Java」でGUIのアプリケーションを作る際に非常に便利な「Java」のフレームワークです。GUIをXMLベースのマークアップ言語と、CSSで実装するという特徴があります。
「JavaFX APIドキュメント」には、そんな「Java FX」を使用する上で役に立つさまざまな情報が豊富に提供されており、チュートリアルも用意されているため「Java」の学習を始めたばかりの方でも気軽に閲覧が可能です。
JavaFXはFXML(XMLベースのマークアップ言語)とCSSを使用してGUIを定義することが可能で、これにより直感的で再利用可能なUIデザインを実現できます。ただしFXMLとCSSの使用はオプションであり、すべてのGUIコンポーネントはJavaコードで直接作成することが可能です。
3つ目のおすすめのリファレンスは、「Java言語と仮想マシンの仕様」です。
「Java言語と仮想マシンの仕様」には、「Java」というプログラミング言語そのものと仮想マシンについての仕様が網羅的にまとめられています。
内容はすべて英語ですが、HTML版もあるため、ブラウザでの翻訳が可能です。「Java」についての知識がある程度身についたあとに読むことで、「Java」についての知識をより深めていけることでしょう。
「Java」には非常に豊富なAPIが備わっていますが、その豊富さゆえにベテランのJavaエンジニアでもすべてを覚えることは難しいです。そのため、必要なときに公式リファレンスを見てドキュメントを読むことで、Javaの学習や開発効率を上げることができます。
本記事を参考に一からプログラムコードを書くのではなく、APIを活用していくことを意識してみてください。
2024.06.17
子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介
#プログラミングスクール
2022.01.06
【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説
#プログラミングスクール
2024.01.26
【未経験でも転職可】30代におすすめプログラミングスクール8選!
#プログラミングスクール
2024.01.26
初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説
#JAVA
2024.01.26
忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説
#プログラミングスクール
2022.01.06
【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介
#プログラミングスクール
2024.01.26
【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説
#プログラミングスクール
2024.01.26
【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説
#プログラミングスクール
2024.01.26
【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説
#プログラミングスクール
2024.01.26
【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説
#プログラミングスクール