ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
標準ライブラリ概観
| パッケージ | 主な機能 | 主要クラス |
|---|---|---|
java.lang | 基本型・例外(import 不要) | String, Math, Thread, Object |
java.util | コレクション・日時・乱数 | ArrayList, HashMap, Stream, Optional |
java.io | 古典 I/O(バイト/文字ストリーム) | FileInputStream, BufferedReader |
java.nio.file | モダンなファイル操作 (Java 7+) | Path, Files, Paths |
java.time | 日時 (Java 8+ JSR-310) | LocalDate, LocalDateTime, Duration |
java.net.http | HTTP クライアント (Java 11+) | HttpClient, HttpRequest |
java.util.concurrent | 並行処理 | ExecutorService, CompletableFuture |
java.util.stream | 関数型ストリーム | Stream, Collectors |
java.util コレクション
import java.util.*;
import java.util.stream.*;
// List / Set / Map
List list = new ArrayList<>(List.of("a", "b", "c"));
Set set = new HashSet<>(Set.of(1, 2, 3));
Map map = new HashMap<>(Map.of("a", 1, "b", 2));
// Stream
List upper = list.stream()
.filter(s -> s.length() > 0)
.map(String::toUpperCase)
.sorted()
.collect(Collectors.toList());
// Optional
Optional first = list.stream().findFirst();
first.ifPresent(System.out::println);
String s = first.orElse("default");
java.time 日時操作 (Java 8+)
import java.time.*;
import java.time.format.DateTimeFormatter;
LocalDate today = LocalDate.now(); // 2026-05-18
LocalTime now = LocalTime.now();
LocalDateTime dt = LocalDateTime.now();
ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("Asia/Tokyo"));
Instant instant = Instant.now(); // UTC
LocalDate d = LocalDate.of(2026, 1, 1);
LocalDate next = d.plusDays(7).plusMonths(1);
// パース / フォーマット
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm");
String text = dt.format(fmt);
LocalDateTime parsed = LocalDateTime.parse("2026/01/01 12:00", fmt);
// 差分
Duration d2 = Duration.between(t1, t2);
Period p = Period.between(d1, d2);
java.nio.file ファイル操作 (Java 7+)
import java.nio.file.*;
import java.util.List;
Path p = Paths.get("/tmp/test.txt");
// 読み書き
Files.writeString(p, "Hello");
String content = Files.readString(p);
List lines = Files.readAllLines(p);
// ストリームで大ファイル
try (Stream stream = Files.lines(p)) {
stream.filter(l -> l.startsWith("ERROR"))
.forEach(System.out::println);
}
// 存在確認 / 削除
Files.exists(p);
Files.deleteIfExists(p);
Files.createDirectories(Paths.get("/tmp/a/b/c"));
java.net.http HTTP クライアント (Java 11+)
import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.example.com/users"))
.header("Authorization", "Bearer xxx")
.GET()
.build();
HttpResponse res = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.statusCode());
System.out.println(res.body());
サードパーティライブラリ主要
| 用途 | ライブラリ | 備考 |
|---|---|---|
| JSON | Jackson (com.fasterxml.jackson) | Spring 標準・デファクト |
| JSON 軽量 | Gson (Google) | Android で人気 |
| ログ抽象化 | SLF4J | API のみ |
| ログ実装 | Logback / Log4j 2 | SLF4J の実装 |
| ユーティリティ | Apache Commons Lang/IO/Collections | StringUtils 等 |
| コレクション/その他 | Google Guava | Immutable コレクション・Cache |
| ボイラープレート削減 | Lombok | @Getter @Setter @Builder |
| 単体テスト | JUnit 5 | @Test @ParameterizedTest |
| モック | Mockito | when().thenReturn() |
| アサーション | AssertJ | assertThat() 流暢 API |
| ORM | Hibernate / JPA | Spring Data JPA で使用 |
| HTTP クライアント | OkHttp / Apache HttpClient | Java 11+ 標準でも代替可 |
Jackson での JSON 操作
import com.fasterxml.jackson.databind.ObjectMapper;
record User(String name, int age) {}
ObjectMapper mapper = new ObjectMapper();
// オブジェクト → JSON
String json = mapper.writeValueAsString(new User("Taro", 30));
// {"name":"Taro","age":30}
// JSON → オブジェクト
User u = mapper.readValue(json, User.class);
// JSON → Map
Map m = mapper.readValue(json, Map.class);
SLF4J + Logback でログ
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Service {
private static final Logger log = LoggerFactory.getLogger(Service.class);
public void doWork(int id) {
log.info("start id={}", id); // パラメタ化(推奨)
try { /* ... */ }
catch (Exception e) {
log.error("failed id={}", id, e); // 例外は最後の引数
}
log.debug("done");
}
}
Lombok でボイラープレート削減
import lombok.*;
@Getter @Setter @ToString
@NoArgsConstructor @AllArgsConstructor
@Builder
public class User {
private String name;
private int age;
}
// 利用
User u = User.builder().name("Taro").age(30).build();
u.getName();
u.setAge(31);
System.out.println(u); // User(name=Taro, age=31)
JUnit 5 + Mockito でテスト
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
class CalculatorTest {
@Test
void testAdd() {
Calculator c = new Calculator();
assertEquals(5, c.add(2, 3));
}
@Test
void testMock() {
UserRepo repo = mock(UserRepo.class);
when(repo.findById(1)).thenReturn(new User("Taro"));
UserService svc = new UserService(repo);
assertEquals("Taro", svc.getName(1));
verify(repo).findById(1);
}
}
依存管理 (Maven / Gradle)
com.fasterxml.jackson.core
jackson-databind
2.16.0
org.projectlombok
lombok
1.18.30
provided
// Gradle build.gradle
dependencies {
implementation 'com.fasterxml.jackson.core:jackson-databind:2.16.0'
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
testImplementation 'org.junit.jupiter:junit-jupiter:5.10.0'
testImplementation 'org.mockito:mockito-core:5.5.0'
}
FAQ
Q: Log4j と Logback どっち?
A: Spring Boot は Logback がデフォルト。Log4j 2 は async logging で高速、Log4Shell 脆弱性 (CVE-2021-44228) 以降は 2.17.1+ 必須。
Q: Java 標準だけで JSON 扱える?
A: Java EE には JSON-P (javax.json) があるが、Jakarta EE への移行で扱いが面倒。実務はほぼ Jackson か Gson。
Q: Lombok のデメリットは?
A: IDE プラグイン依存、デバッグでステップが飛ぶ、リフレクションで生成コードを検査できない。チームで合意してから導入を。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?