Java よく使うクラスライブラリ
Javaは豊富なクラスライブラリを提供しています。以下は最もよく使われるクラスの一部です。
1. コア Java クラスライブラリ
Java標準ライブラリは豊富な組み込みクラスライブラリを提供しています。以下はよく使われるコアクラスライブラリの一部です:
| カテゴリ | クラスライブラリ名 | 主な機能 |
|---|---|---|
| コレクションフレームワーク | java.util.ArrayList |
動的配列の実装 |
java.util.LinkedList |
双方向リンクリストの実装 | |
java.util.HashMap |
ハッシュテーブル実装のMap | |
java.util.Vector |
動的配列を実装 | |
java.util.HashSet |
ハッシュテーブルベースのSet | |
java.util.Scanner |
ユーザー入力の取得 | |
java.util.regex.Pattern |
正規表現 | |
java.util.regex.Macher |
正規表現 | |
| IO/NIO | java.io.File |
ファイルとディレクトリ操作 |
java.nio.file.Files |
ファイル操作ユーティリティクラス | |
java.io.InputStream |
バイトストリーム基本クラス | |
java.io.OutputStream |
バイトストリーム基本クラス | |
| マルチスレッド | java.lang.Thread |
スレッド操作クラス |
java.util.concurrent.ExecutorService |
スレッドプール管理 | |
| 日付時刻 | java.time.LocalDate |
日付処理 |
java.time.LocalDateTime |
日付時刻処理 | |
java.time.ZonedDateTime |
タイムゾーン付きの日付と時刻 | |
java.util.Date |
現在の日付 | |
java.text.SimpleDateFormat |
日時フォーマット | |
java.util.Calendar |
日時の処理 | |
java.util.GregorianCalendar |
グレゴリオ暦を実装 | |
java.time.Instant |
時間軸上の瞬間的な点を表す | |
java.time.ChronoUnit |
時間を測定するための標準単位 | |
java.time.Period |
2つの日付の間の時間間隔を表す | |
java.time.Duration |
時間ベースの期間(時間、分、秒、ナノ秒)を表す | |
| ネットワークプログラミング | java.net.URL |
URL処理 |
java.net.Socket |
ソケットプログラミング |
2. よく使うサードパーティライブラリ
以下はJavaエコシステムで広く使用されているサードパーティライブラリです:
| カテゴリ | ライブラリ名 | 主な機能 | 公式サイト |
|---|---|---|---|
| JSON処理 | Jackson |
JSONシリアライズ/デシリアライズ | https://github.com/FasterXML/jackson |
Gson |
GoogleのJSONライブラリ | https://github.com/google/gson | |
| ユニットテスト | JUnit |
Javaユニットテストフレームワーク | https://junit.org/junit5/ |
Mockito |
Mockテストフレームワーク | https://site.mockito.org/ | |
| ログ記録 | Log4j |
ログ記録フレームワーク | https://logging.apache.org/log4j/ |
SLF4J |
ログファサードフレームワーク | https://www.slf4j.org/ | |
| Web開発 | Spring Framework |
エンタープライズアプリケーションフレームワーク | https://spring.io/projects/spring-framework |
Spring Boot |
高速アプリケーション開発フレームワーク | https://spring.io/projects/spring-boot | |
| データベース | Hibernate |
ORMフレームワーク | https://hibernate.org/ |
MyBatis |
SQLマッピングフレームワーク | https://mybatis.org/mybatis-3/ | |
| ビルドツール | Maven |
プロジェクトのビルドと依存関係管理 | https://maven.apache.org/ |
Gradle |
柔軟なビルドツール | https://gradle.org/ |
3. 適切なクラスライブラリの選び方
3.1 評価基準
- 機能要件:まずプロジェクトに必要な機能を明確にする
- コミュニティサポート:活発なコミュニティはより良いサポートとドキュメントを意味する
- パフォーマンス:パフォーマンスに敏感なアプリケーションでは特に考慮が必要
- 学習曲線:チームの学習コストを考慮する
- メンテナンス状態:プロジェクトがまだ積極的にメンテナンスされているか確認する
3.2 バージョン選択の推奨事項
- LTS(長期サポート)バージョンを優先的に選択する
- メンテナンスが停止しているバージョンの使用を避ける
- 新しいプロジェクトではより新しい安定版を検討できる
4. 使用例
4.1 Jacksonを使用してJSONを処理する
例
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
// オブジェクトをJSONに変換
String json = mapper.writeValueAsString(new User("张三", 25));
System.out.println(json);
// JSONをオブジェクトに変換
User user = mapper.readValue(json, User.class);
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class JsonExample {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
// オブジェクトをJSONに変換
String json = mapper.writeValueAsString(new User("张三", 25));
System.out.println(json);
// JSONをオブジェクトに変換
User user = mapper.readValue(json, User.class);
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.2 JUnitを使用してユニットテストを行う
例
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
@Test
void testAdd() {
Calculator calc = new Calculator();
assertEquals(5, calc.add(2, 3));
}
}
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
@Test
void testAdd() {
Calculator calc = new Calculator();
assertEquals(5, calc.add(2, 3));
}
}