Java 逆引き集

Java
スポンサーリンク

以下は業務でよく使う順に並べた 500 のトピック / テクニック です。項目ごとに短い説明と代表的な用途を添えています。まず大分類ごとに分け、業務で即役立つ順に並べました。


1〜50:言語基本・実務で頻出(50件)

  1. 変数宣言(プリミティブ/参照型) — 型選びと初期化。
  2. 型変換(キャスト、ボクシング/アンボクシング) — データ受け渡し時。
  3. 条件分岐(if / switch) — ビジネスロジックの分岐。
  4. ループ(for / enhanced for / while) — 集合処理、レコードループ。
  5. メソッド定義と引数(可変長引数) — 再利用可能ロジック。
  6. 戻り値(参照/プリミティブ) — API レイヤ設計。
  7. 例外処理(try / catch / finally) — 安定性と後始末。
  8. カスタム例外の作り方 — 明確なエラー伝搬。
  9. null/Optional の使い分け — NPE 回避、意図の明示。
  10. String 操作(concat, substring, format) — 表示・ログ処理。
  11. StringBuilder / StringBuffer — 文字列連結の効率化。
  12. 配列(一次元・多次元) — 固定長データ処理。
  13. List / Map / Set の基本概念(インターフェース) — データ構造選択。
  14. forEach とラムダの基本(簡単な処理) — 可読性向上。
  15. 可変引数メソッド(…) — 汎用ユーティリティ。
  16. インスタンス生成(new)とファクトリパターンの基礎 — オブジェクト管理。
  17. static とインスタンスの違い — 状態管理。
  18. final の使い方(変数・クラス・メソッド) — 不変性確保。
  19. アクセス修飾子(public/private/protected/default) — カプセル化。
  20. クラス設計の基本(単一責任) — 保守性を高める。
  21. 継承とポリモーフィズム — 拡張性のある設計。
  22. 抽象クラス vs インターフェース — API 設計の選択。
  23. 内部クラス(static / 非static / 匿名) — 小さなヘルパー実装。
  24. Enum の使い方(プロパティとメソッド) — 定数管理。
  25. アノテーションの基礎(@Override 等) — メタ情報。
  26. ジェネリクス基礎(型パラメータ) — 型安全なコレクション。
  27. ワイルドカード(? extends / ? super) — API 汎用性。
  28. 可視性とパッケージ設計 — モジュール分離。
  29. 型推論(var) — ローカル変数の簡潔化(Java 10+)。
  30. 文字列の正規表現(Pattern / Matcher) — テキスト検証。
  31. 日付時間API(java.time: LocalDate/LocalDateTime/Duration) — 日時処理。
  32. ロギングの基本(slf4j + Logback 等) — 運用ログ。
  33. リソース自動クローズ(try-with-resources) — リソース漏れ防止。
  34. シリアライズ(Serializable の注意点) — 永続化/送受信。
  35. リフレクション基礎(Class, Method) — フレームワーク開発/DI。
  36. アサーション(assert) — デバッグ補助。
  37. アルゴリズム基礎(ソート/検索の考え方) — パフォーマンス判断。
  38. 配列→コレクション変換(Arrays.asList 等) — API 互換。
  39. 入出力のエンコーディング(UTF-8 など) — 文字化け防止。
  40. 簡単なユーティリティクラス作成(static メソッド) — 共通処理集約。
  41. 依存注入(コンストラクタ注入の利点) — テスト容易性。
  42. 不変オブジェクトの作り方(Immutable) — スレッド安全。
  43. equals / hashCode の正しい実装 — コレクションでの動作保証。
  44. toString の実装方針 — ログ/デバッグの可視化。
  45. 最小特権の原則(アクセス制御) — セキュリティ基本。
  46. サニタイズ(入力検証) — セキュリティと整合性。
  47. Javadoc コメントの書き方 — API ドキュメント化。
  48. バージョン互換(Java のメジャーアップでの注意) — 移行計画。
  49. 単体テストを意識した設計(DI, インターフェース分離) — テスト容易性。
  50. コードスタイルとフォーマッタ(一定の規約) — チーム開発品質。

51〜100:コレクション(List/Map/Set など)— 実務パターン(50件)

  1. ArrayList の使いどころと性能(ランダムアクセス重視) — 一覧管理。
  2. LinkedList の使いどころ(頻繁な先頭/中間挿入) — キュー実装。
  3. HashMap の基本(キーのハッシュ化) — 索引付き検索。
  4. LinkedHashMap(挿入順/アクセス順保持) — LRU 実装の簡易版。
  5. TreeMap(ソートされた Map) — 範囲検索。
  6. HashSet の特性と重複排除 — 一意性保持。
  7. EnumMap / EnumSet の活用(enum 最適化) — 小さい高速マップ/集合。
  8. ConcurrentHashMap (スレッド安全な Map) — マルチスレッド環境。
  9. Collections.unmodifiableList 等(読み取り専用ラッパー) — API 返却時の安全性。
  10. Collections.shuffle / sort / reverse — リスト操作ユーティリティ。
  11. Arrays クラスユーティリティ(sort / binarySearch) — 配列操作。
  12. Collections.synchronizedList 等(同期ラッパー) — 古い同期方法。
  13. Map.computeIfAbsent / compute / merge — 集計ロジック簡潔化。
  14. Map のストリーム処理(entrySet→stream) — キー/値単位処理。
  15. MultiMap パターン(Map<K, List>) — 1対多管理。
  16. イミュータブルコレクション(List.of, Map.of) — 不変の集合。
  17. PriorityQueue(優先度キュー) — ジョブスケジューラ。
  18. Deque(ArrayDeque) — 両端操作、高速スタック/キュー。
  19. NavigableMap / NavigableSet(近傍検索) — 前後関係の取得。
  20. WeakHashMap の利用ケース(キャッシュと GC) — メモリリーク防止。
  21. IdentityHashMap(== でキー比較) — 特殊用途。
  22. ConcurrentLinkedQueue(ロックフリーキュー) — 高スループット。
  23. CopyOnWriteArrayList(読み取り多い並列環境) — 読み取り優先。
  24. Collections.frequency / disjoint などユーティリティ — コレクション比較。
  25. Stream.collect(Collectors.toList()/toSet()/toMap()) — ストリーム結果変換。
  26. PartitioningBy / GroupingBy(Collectors) — 集計・グループ化。
  27. FlatMap を使ったネスト解除 — ネスト構造展開。
  28. Comparator の作り方(comparing, reversed, thenComparing) — ソートルール。
  29. 自然順序付け(Comparable) — デフォルトソート。
  30. サブリスト(subList)の注意点(ビュー) — 変更の影響範囲。
  31. Immutable key の要件(hashCode/equals 安定) — Map の鍵設計。
  32. コレクションの初期容量指定(負荷低減) — パフォーマンスチューニング。
  33. Stream の並列化(parallelStream)と注意点 — スレッド安全性。
  34. Iterator.remove の正しい使い方 — ループ中の安全な削除。
  35. ListIterator(双方向反復) — 位置ベースの操作。
  36. Collections.swap / replaceAll — リスト操作の簡潔化。
  37. Arrays.copyOf / copyOfRange — 配列操作と拡張。
  38. Immutable wrappers と defensive copy パターン — API 安全性。
  39. Map のビュー(keySet, values, entrySet)の使い分け — 効率的操作。
  40. Stream の無限ストリーム(iterate, generate) — データ生成。
  41. トポロジカルソート(グラフ→依存解決) — ビルド順や依存解決。
  42. バッファ付きコレクション(LinkedList の代替) — メモリ/性能の考慮。
  43. コレクション間の差分(removeAll, retainAll) — 差分集計。
  44. Map の null キー/値対応(実装差) — 入出力検証。
  45. ThreadLocal を使ったスレッド依存データ管理 — スレッド単位の状態。
  46. Collections.newSetFromMap(Map を Set に変換) — カスタム Set 実装。
  47. Guava / Apache Commons Collections の利用(拡張ユーティリティ) — 実務ツール。
  48. 多次元配列と List<List> の使い分け — 可変性と利便性。
  49. バッチ処理用チャンク分割(partitioning) — メモリ制御。
  50. Iterator vs Stream の使い分け(遅延評価・メモリ) — 性能設計。

101〜150:ストリームとラムダ(50件)

  1. Stream API の基本(stream(), filter, map, collect) — データ変換。
  2. Intermediate / Terminal 操作の理解 — パイプライン設計。
  3. filter・map・flatMap の使い分け — 条件絞りと展開。
  4. distinct / limit / skip — 重複排除・ページング処理。
  5. reduce の使い方(集約) — 合算や累積計算。
  6. collect(Collectors.groupingBy(…)) — グルーピング集計。
  7. joining(Collectors.joining) — 文字列結合。
  8. partitioningBy(true/false に分割) — 二分集計。
  9. summarizingInt/Long/Double — 統計情報を一発取得。
  10. max/min/findFirst/findAny — 候補抽出。
  11. anyMatch/allMatch/noneMatch — 条件検査。
  12. IntStream/LongStream/DoubleStream(プリミティブストリーム) — オートボクシング回避。
  13. range / rangeClosed(数値ストリーム) — 反復生成。
  14. Stream.iterate(Java 9 の変化) — シーケンス生成。
  15. Collectors.toMap の衝突解決(mergeFunction) — Map 化での安全対策。
  16. Stream 並列化の落とし穴(副作用) — スレッド安全性。
  17. peek の使い方(デバッグ) — 中間ログ。
  18. ファイルの行ストリーム処理(Files.lines) — 大規模ファイル処理。
  19. Optional を返すストリーム処理パターン — null 安全。
  20. ストリームでの例外処理パターン(ラップ処理) — checked 例外の扱い。
  21. Collector.of でカスタム Collector 作成 — 特殊な集約。
  22. 並列ストリームと ForkJoinPool のチューニング — スループット向上。
  23. ストリームの短絡(short-circuit)操作 — パフォーマンス最適化。
  24. 並列ストリームでのコンテキスト保持(ThreadLocal の注意) — 意図しない挙動回避。
  25. flatMap を用いたネスト解除(OptionalやListのネスト) — 構造フラット化。
  26. Collector joining with delimiter/prefix/suffix — レポート生成。
  27. IntSummaryStatistics の活用 — 集計情報取得の便利型。
  28. Stream の例外リカバリ戦略(fallback) — 途中失敗の処理。
  29. Stream を使った行列変換(transpose) — データ整形。
  30. サードパーティライブラリ(jOOλ 等)の活用 — ストリーム拡張。
  31. ストリームでのランダムアクセスの落とし穴 — パフォーマンス評価。
  32. ストリームチェーンの分割と再利用 — 可読性/保守性。
  33. Stream サプライヤーパターン(Supplier を用いる) — 再生成可能性。
  34. 並列 reduce の適切な設計(結合可能な演算) — 正しさの担保。
  35. イテレータ→ストリームの変換(StreamSupport) — 外部API統合。
  36. Windowing(スライディング窓)パターン実装 — 時系列処理。
  37. Stream のメモリ使用量推定と対策 — 大量データ処理。
  38. 組み合わせ生成(combinatorics via stream) — テストデータ作成。
  39. Stream と SQL の比較(いつ DB で処理すべきか) — 負荷分散判断。
  40. ストリームのデバッグ技(ログ出力・中間確認) — トラブルシュート。
  41. キャッシング Collector(memoizing)パターン — 重い計算の最適化。
  42. ストリームでの並列グループ化(groupingByConcurrent) — 並列集計。
  43. reduce で複合オブジェクト集約 — ドメイン集計。
  44. Stream API によるツリー/グラフ探索(再帰を使わないパターン) — 非再帰探索。
  45. Stream と Optional の良い組み合わせ — 値の有無ハンドリング。
  46. lazy evaluation の理解(中間操作は遅延) — 無駄な処理回避。
  47. Stream を使った CSV → オブジェクト変換 — ETL の簡潔化。
  48. parallelStream のベンチマーク方法 — 実運用での検証。
  49. Stream を用いたデータ整形パイプライン設計 — パイプラインアーキテクチャ。
  50. ストリーム処理の設計ガイドライン(副作用禁止等) — 保守性向上。

151〜200:並列・並行処理(50件)

  1. Thread の基礎(作成・start/run) — 低レベル並列処理。
  2. Runnable と Callable の違い — 戻り値と例外処理。
  3. ExecutorService の使い方(固定スレッドプール) — スレッド管理。
  4. Future / CompletableFuture の基本 — 非同期処理と結果取得。
  5. CompletableFuture.thenApply / thenCompose / thenCombine — 非同期パイプライン。
  6. Executor のシャットダウンの正しい手順 — リソースリーク回避。
  7. ScheduledExecutorService(定期タスク) — バッチ/スケジューリング。
  8. synchronized ブロックとメソッド — 排他制御の基本。
  9. Lock(ReentrantLock)と Condition — 柔軟な同期制御。
  10. ReadWriteLock(読み取り優先) — 読み取り多めの場面。
  11. volatile の意味と使いどころ — 可視性確保。
  12. AtomicInteger / AtomicReference — ロックレス操作。
  13. CountDownLatch / CyclicBarrier — スレッド同期パターン。
  14. Phaser(高度な同期) — 柔軟なバリア同期。
  15. Semaphore(同時実行数制限) — リソース制御。
  16. ThreadPool のチューニング(コア/最大/キュー) — 性能最適化。
  17. Work stealing と ForkJoinPool — divide-and-conquer 型処理。
  18. Deadlock の原因と検出方法 — 安全性確保。
  19. Livelock と Starvation の理解と回避策 — 公平性。
  20. 非同期エラーハンドリング(exceptionally, handle) — 失敗回復。
  21. BlockingQueue(ArrayBlockingQueue, LinkedBlockingQueue) — 生産者/消費者。
  22. Disruptor パターン(高性能キュー) — 高スループット要求時。
  23. ThreadLocal の正しい使用(クリーンアップ必須) — リクエスト単位の状態。
  24. synchronized vs Lock の使い分け — 性能と機能性。
  25. Fork/Join を使った並列分割処理 — 大量データの並列処理。
  26. 非同期ストリーミング(Reactive の基礎) — イベント駆動処理。
  27. CompletableFuture と Executor を組み合わせたワークフロー — 実務タスク管理。
  28. 非同期パイプラインの構築パターン(fan-out/fan-in) — 並列処理集約。
  29. Future.get のタイムアウト指定 — ハング防止。
  30. スレッド名や例外ハンドラの設定 — 運用性向上。
  31. ThreadPoolExecutor のカスタマイズ(RejectedExecutionHandler) — オーバーフロー対処。
  32. 並列コレクション(ConcurrentLinkedDeque など) — 高並列のデータ構造。
  33. 信号待ち / notifyAll の正しい使い方 — 待ち合わせの実装注意。
  34. スレッドプールでのネスト呼び出し(deadlock の注意) — 設計上の落とし穴。
  35. 非同期ログ記録の考え方 — パフォーマンスと順序保証。
  36. バックプレッシャーの概念(Reactive) — 過負荷制御。
  37. 非同期テスト(CompletableFuture のテスト) — テスト方法。
  38. 並列処理でのトランザクション境界 — 一貫性の保持。
  39. 非同期 API の設計(コールバック/Promise/Reactive) — API 利便性。
  40. Lock-free データ構造の基礎概念 — 高性能設計。
  41. 并行ストリームと ForkJoinPool の関係 — 運用チューニング。
  42. 非同期例外のロギングと監視 — 運用可観測性。
  43. スレッドセーフなシングルトン実装 — 初期化安全性。
  44. スレッド間通信(Queue ベース) — 非同期連携。
  45. CPU バウンド vs I/O バウンド の適切なスレッド数 — リソース最適化。
  46. メモリバリアの概念(JMM) — 正しい並行設計理解。
  47. 非同期処理の可視化(メトリクス) — 運用判断。
  48. 逐次実行にフォールバックする戦略(graceful degradation) — 安全性設計。
  49. CompletableFuture.allOf / anyOf の使いどころ — 複数非同期の集約。
  50. 並列処理のプロファイリング(スレッドダンプ分析) — ボトルネック特定。

201〜240:入出力・NIO(40件)

  1. File / Path(java.nio.file.Path)の基本操作 — ファイルの基本入出力。
  2. Files クラスユーティリティ(readAllLines, write) — 小規模ファイル処理。
  3. BufferedReader / BufferedWriter の使い方 — 効率的なテキスト入出力。
  4. InputStream / OutputStream の扱い(バイナリ) — バイナリデータ処理。
  5. FileChannel / ByteBuffer(NIO) — 高速なファイルアクセス。
  6. AsynchronousFileChannel(非同期ファイル I/O) — 非同期大容量処理。
  7. Paths.get と相対/絶対パスの注意 — 環境差対応。
  8. WalkFileTree(ファイルツリー操作) — 再帰的処理。
  9. WatchService(ファイル監視) — ファイル変更トリガー。
  10. Charset と文字コード変換 — マルチバイト文字対応。
  11. RandomAccessFile(ランダム読み書き) — 頻繁な部分更新。
  12. ZipFile / ZipOutputStream(圧縮/展開) — ファイル圧縮処理。
  13. Stream を使ったファイル行処理(Files.lines) — 大ファイルの逐次処理。
  14. Scanner の使いどころ(簡易分解) — 入力解析。
  15. IO のバッファサイズチューニング — 性能向上。
  16. try-with-resources での複数リソース管理 — クリーンアップ自動化。
  17. ソケット I/O(Socket/ServerSocket)基礎 — TCP 通信。
  18. DatagramSocket(UDP)基礎 — 軽量の単発送信。
  19. URLConnection / HttpURLConnection(旧) — シンプルな HTTP 通信。
  20. java.net.InetAddress(DNS/ホスト解決) — ネットワーク情報取得。
  21. NIO Selector(マルチプレクス入出力) — 大量同時接続処理。
  22. ファイルロック(FileLock) — 競合制御。
  23. 標準入出力(System.in/out/err)の扱い — CLI ツール。
  24. Properties ファイル読み書き — 設定管理。
  25. Preferences API(軽量設定ストレージ) — ユーザー設定保持。
  26. MIME 型判定と Content-Type 処理 — HTTP ヘッダの扱い。
  27. 圧縮ストリーム(GZIPInputStream/OutputStream) — ネットワーク軽量化。
  28. Base64 エンコード/デコード — バイナリ→テキスト変換。
  29. IO 例外ハンドリングの設計(リトライやフォールバック) — 信頼性向上。
  30. バイト順(エンディアン)の扱い — バイナリプロトコル対応。
  31. File.separator と OS 非依存パス設計 — クロスプラットフォーム対応。
  32. TemporaryFile の作成とクリーンアップ — 一時ファイル管理。
  33. ファイル権限(PosixFilePermissions) — セキュリティ考慮。
  34. 大容量ファイルの分割/結合パターン — バッチ処理。
  35. ストリーミング応答(HTTP レスポンスの逐次送信) — メモリ節約。
  36. 文字コード検出(BOM 判定等) — 入力前処理。
  37. NIO2 の PathMatcher(glob, regex) — ファイルマッチング。
  38. ファイルアップロード処理の実装パターン — Web アプリ用。
  39. FileSystem abstraction(ZIP FS など) — 仮想ファイルシステム利用。
  40. IO のテスト戦略(モック、TempDir) — 単体テスト設計。

241〜270:データベース / JDBC(30件)

  1. JDBC ドライバの基本設定と接続(DriverManager) — DB 接続初期化。
  2. DataSource とコネクションプーリング(HikariCP 等) — 接続効率化。
  3. PreparedStatement の利用(パラメータ化) — SQL インジェクション防止。
  4. トランザクション管理(commit/rollback, autoCommit) — データ一貫性。
  5. Batch 処理(addBatch / executeBatch) — バルク書き込み高速化。
  6. ResultSet の正しいクローズ順序 — リソースリーク回避。
  7. JDBC の例外ハンドリング(SQLState, errorCode) — 障害対応。
  8. NamedParameter(JdbcTemplate など)パターン — 可読性向上。
  9. ORマッパー(JPA/Hibernate)の基本と利点 — 生産性向上。
  10. エンティティ設計(ID 戦略、正規化) — 永続化設計。
  11. クエリ最適化(索引の利用、EXPLAIN) — 性能チューニング。
  12. ページング実装(limit/offset, keyset pagination) — UI 用データ取得。
  13. トランザクションの伝播(PROPAGATION)概念 — サービス連携。
  14. コネクションリーク検出設定(pool の診断) — 運用安定化。
  15. 楽観ロック vs 悲観ロック — 同時更新対策。
  16. カスタム SQL と ORM の使い分け — 性能と柔軟性。
  17. ストアドプロシージャ呼び出し(CallableStatement) — DB 側ロジック利用。
  18. スキーママイグレーションツール(Flyway, Liquibase) — DB 変更管理。
  19. 分散トランザクション(2PC)の基本と回避策 — 複雑性軽減。
  20. DB 接続情報の安全な管理(暗号化/シークレット管理) — セキュリティ。
  21. キャッシング(二次キャッシュ/アプリ側キャッシュ) — DB 負荷軽減。
  22. スロークエリ検出と対応フロー — 運用改善。
  23. 実行計画の読み方(INDEX 使用状況) — クエリ最適化判断。
  24. JDBC テンプレートパターン(template method) — ボイラープレート除去。
  25. JDBC でのストリーミング(fetchSize) — 大量データ処理。
  26. BLOB / CLOB の扱い方 — 大容量データ格納。
  27. 文字コード問題の対処(DB 側とアプリ側の整合) — 文字化け回避。
  28. DB 障害時のフォールバック戦略(retry, circuit breaker) — 可用性向上。
  29. マルチテナント設計パターン(schema vs column) — SaaS 向け設計。
  30. DB のモニタリング指標(接続数/クエリ遅延) — 運用可観測性。

271〜300:ネットワーク・HTTP(30件)

  1. HttpClient(Java 11+)の基本利用 — HTTP 通信。
  2. タイムアウト設定(connect/read) — 外部依存の堅牢化。
  3. HTTP ヘッダの扱い(Content-Type, Authorization) — プロトコル設計。
  4. REST API 設計の基本(エンドポイント設計、ステータスコード) — API 品質。
  5. エラーハンドリングと標準化(エラーコード/ボディ) — クライアント互換性。
  6. JSON シリアライズ/デシリアライズ(Jackson/Gson) — データ交換。
  7. HTTP ステータスコードの使い分け(200/201/400/401/403/404/500) — API 運用。
  8. Keep-Alive と接続再利用 — ネットワーク効率。
  9. TLS/SSL の基本設定(証明書、信頼ストア) — セキュア通信。
  10. 認証方式(Basic, Bearer, OAuth2) — セキュリティ設計。
  11. CORS(クロスオリジン)の理解と設定 — ブラウザ互換。
  12. HTTP/2 の利点と対応策 — レイテンシ削減。
  13. WebSocket(双方向通信)利用ケース — リアルタイム更新。
  14. gRPC の使いどころとメリット — 高速 RPC。
  15. API バージョニング戦略(URL / header) — 互換性維持。
  16. Rate Limiting(レート制限)実装方法 — 公平な利用制御。
  17. Circuit Breaker(resilience4j / Hystrix) — 外部依存の耐障害性。
  18. ヘルスチェックエンドポイント設計(/health) — オーケストレーション連携。
  19. API ドキュメント化(OpenAPI/Swagger) — 開発・運用共有。
  20. プロキシ・リバースプロキシとの連携(X-Forwarded-For 等) — インフラ連携。
  21. Multipart/form-data の処理(ファイルアップロード) — Web フォーム対応。
  22. 接続プールと Keepalive の監視 — ネットワーク安定化。
  23. TLS プロトコル緩和(脆弱プロトコルの無効化) — セキュリティ強化。
  24. HTTP クライアントの再試行ポリシー設計 — 一貫したリトライ動作。
  25. プロトコルバージョン互換性(HTTP/1.1 vs HTTP/2) — クライアント選定。
  26. API レスポンス圧縮(gzip, brotli) — 帯域節約。
  27. ストリーミングレスポンス(chunked) — 大量データ逐次送信。
  28. TLS の SNI/ALPN の理解 — 複合ホスティング対応。
  29. Webhook の実装と検証(署名検証) — 外部連携安全性。
  30. プロキシ経由の認証と接続設定 — インフラ制約対応。

301〜330:Web/サーバサイド(Servlet / Spring 等)— 実務(30件)

  1. Servlet のライフサイクル(init/service/destroy) — 基礎動作理解。
  2. Filter / Listener の使いどころ(認証/ログ) — リクエスト横断処理。
  3. Spring Boot の基本構成(starter の使い方) — 迅速なプロジェクト立ち上げ。
  4. @Controller と @RestController の違い — Web レイヤ実装。
  5. DI(@Autowired / コンストラクタ注入)ベストプラクティス — テスト容易性。
  6. @Configuration / @Bean の基本 — Bean 定義。
  7. プロパティ管理(application.properties / yaml) — 環境別設定。
  8. Actuator の導入とメトリクス — 運用監視。
  9. Spring Data JPA の使い方(Repository) — DB 操作簡素化。
  10. @Transactional の正しい使い方 — トランザクション管理。
  11. Bean スコープ(singleton, prototype, request, session) — オブジェクト寿命。
  12. ExceptionHandler(@ControllerAdvice)での一括エラー処理 — API 品質向上。
  13. Validation(javax.validation / @Valid) — 入力検証。
  14. CORS 設定(@CrossOrigin / WebMvcConfigurer) — API 公開制御。
  15. Interceptor と Filter の違い — リクエスト処理の挿入点。
  16. MultipartResolver を使ったファイルアップロード — 大容量ファイル対応。
  17. セッション管理(HttpSession, stateless と stateful) — 認可設計。
  18. CSRF 対策(Spring Security の導入) — セキュリティ対策。
  19. Spring Security 基礎(認証、認可の実装) — アプリ保護。
  20. OAuth2 / OpenID Connect の統合パターン — シングルサインオン。
  21. RestTemplate vs WebClient(Reactive) — 同期/非同期クライアント。
  22. コンテンツネゴシエーション(produces/consumes) — API 互換。
  23. プロファイル(@Profile)を利用した環境分離 — デプロイ戦略。
  24. テンプレートエンジン(Thymeleaf)利用ケース — サーバサイドレンダリング。
  25. HATEOAS の基礎 — REST の自己記述性。
  26. Health checks / readiness / liveness の実装 — コンテナ環境向け。
  27. サーバー側キャッシュ(CacheControl / ETag) — ネットワーク効率。
  28. マイクロサービス間の呼び出しパターン(同期 vs 非同期) — アーキテクチャ設計。
  29. API ゲートウェイ(認証・ルーティング)連携パターン — インフラ整理。
  30. Spring Boot のプロファイリングと設定最適化 — 起動/実行性能。

331〜360:シリアライズ・JSON・XML(30件)

  1. JSON シリアライズ(Jackson の基本) — API レスポンス。
  2. @JsonProperty / @JsonIgnore の使い分け — JSON マッピング制御。
  3. 型安全なデシリアライズ(DTO を使う) — バリデーション容易化。
  4. Jackson のモジュール(JavaTimeModule 等) — 日時シリアライズ対応。
  5. JSON Schema によるバリデーション — API 入力検証。
  6. Gson の基本使い方 — 軽量 JSON 処理。
  7. XML バインディング(JAXB) — 既存 XML API 連携。
  8. CSV パース(OpenCSV / Commons CSV) — 帳票/インポート処理。
  9. プロトコルバッファ(Protocol Buffers)利用ケース — バイナリ通信最適化。
  10. Avro / Thrift の利用場面 — データ互換性確保。
  11. JSON-LD / Schema.org の基礎 — 構造化データ出力。
  12. シリアライズ互換性の注意点(serialVersionUID) — 長期保存の互換。
  13. ストリーミング JSON パーサ(Jackson Streaming API) — 大量データ処理。
  14. JSON Pointer / JSON Patch の使い所 — 部分更新。
  15. 型変換ルール(カスタムシリアライザ) — 特殊フォーマット対応。
  16. XML XPath / XSLT の基礎 — XML 変換・抽出。
  17. バイナリ形式の圧縮とシリアライズ併用 — 帯域/保管最適化。
  18. Jackson の @JsonView を使ったシリアライズ制御 — レスポンスの切替。
  19. Streaming API とメモリ節約(SAX vs DOM) — 大規模 XML。
  20. メッセージフォーマットのバージョニング戦略 — 互換性維持。
  21. JSONP / CORS のセキュリティ注意点 — クライアント対策。
  22. カスタムフォーマット(例えば Excel → JSON)変換パターン — ETL。
  23. Schema registry とシリアライズ管理(Kafka と併用) — メッセージ整合性。
  24. セキュアな XML パーシング(XXE 対策) — 脆弱性対応。
  25. JSON benchmarks(処理速度比較)による選択 — ライブラリ選定。
  26. メタデータ付きシリアライズ(ヘッダ+ボディ) — RPC/イベント設計。
  27. JSON の部分更新パターン(merge) — 軽量 PATCH 実装。
  28. 複合型データのマッピング戦略(polymorphic) — 継承付き DTO の扱い。
  29. シリアライズ時のバージョン情報付与 — フォーマット管理。
  30. JSON -> DB マッピングパターン(NoSQL / RDB への格納) — データ保管戦略。

361〜390:テスト・デバッグ(30件)

  1. JUnit 5 の基本(@Test, assertions) — 単体テスト。
  2. Mockito でのモック作成 — 依存切り離しテスト。
  3. Integration Test(SpringBootTest) — 結合動作確認。
  4. @BeforeEach / @AfterEach の使い方 — テスト前後処理。
  5. ParameterizedTest(複数入力テスト) — 網羅的検証。
  6. テストデータ管理(Fixture, Factory) — 再現性のあるテスト。
  7. テストカバレッジ(JaCoCo)活用 — 品質指標。
  8. プロファイル切り替えによるテスト環境分離 — 環境依存排除。
  9. ロギングを使ったデバッグ(適切なログレベル) — 問題追跡。
  10. デバッガ(ブレークポイント、変数ウォッチ)活用法 — 実行検証。
  11. コンテナを使った統合テスト(Testcontainers) — 実環境に近い検証。
  12. 性能テスト(JMH / JMeter) — ベンチマーク。
  13. テストダブルのパターン(スタブ/スパイ/モック) — 目的別選択。
  14. テスト可能なコード設計(DI, pure function) — 保守性向上。
  15. ログからの診断フロー設計(ログ構造化) — 運用効率化。
  16. Exception の再現テスト(fault injection) — 障害耐性確認。
  17. CI でのテスト自動化(GitHub Actions / Jenkins) — 開発効率。
  18. レガシーコードのテスト導入ステップ(カバレッジ向上戦略) — 改修安全性。
  19. メトリクス導出テスト(Prometheus メトリクス確認) — 可観測性検証。
  20. メモリリーク検出(heap dump 分析) — 長時間実行の安定化。
  21. ログサニタイズと赤acted 情報 — セキュリティ配慮。
  22. デバッグ用 feature flag の運用方法 — 本番安全性確保。
  23. End-to-End テストの設計(現実的なシナリオ) — ユーザ視点の検証。
  24. 非決定的テストの回避(時間/順序依存) — 安定した CI。
  25. テストデータの匿名化と GDPR 対応 — プライバシー保護。
  26. カナリアリリースとテスト連携 — 本番段階的検証。
  27. ログ分析ツール(ELK 等)を用いた障害解析 — 運用迅速化。
  28. 例外発生箇所のスタックトレース解析手法 — 原因究明。
  29. デバッグログを残す最小限の設計(敏感情報を除外) — セキュリティと有用性。
  30. テストの高速化テクニック(単体先行、外部依存のモック) — 開発速度向上。

391〜410:ビルド・デプロイ・ツール(20件)

  1. Maven の基本(pom.xml, 依存管理) — ビルドの標準化。
  2. Gradle の基本(build.gradle / Kotlin DSL) — 柔軟なビルド。
  3. マルチモジュールプロジェクト設計 — 大規模プロジェクト分割。
  4. バージョニング戦略(Semantic Versioning) — リリース管理。
  5. CI/CD パイプライン設計(ビルド→テスト→デプロイ) — 自動化。
  6. Artifact リポジトリ(Nexus, Artifactory)運用 — 配布管理。
  7. コンテナ化(Dockerfile のベストプラクティス) — 配置一貫性。
  8. Kubernetes 基本(Pod/Service/Deployment)との連携 — オーケストレーション。
  9. Infrastructure as Code(Terraform)の導入ポイント — インフラ再現性。
  10. ロールバック戦略の設計(immutable deploy 等) — リリース安全性。

411〜430:セキュリティ(20件)

  1. (番号継続の都合上)認証と認可の違い — 基本概念。
  2. パスワード取り扱い(ハッシュ化: bcrypt/scrypt/argon2) — 認証安全性。
  3. HTTPS 強制(HSTS)とセキュア設定 — 通信保護。
  4. SQL インジェクション対策(プリペアドステートメント) — DB セキュリティ。
  5. XSS 対策(出力エスケープ) — フロント保護。
  6. CSRF トークンの設計と検証 — リクエスト偽造防止。
  7. Open Redirect 等の脆弱性チェック — 外部連携安全。
  8. 秘密情報の安全管理(Vault/Secrets Manager) — シークレット保護。
  9. ロールベースアクセス制御(RBAC)設計 — 権限管理。
  10. セキュリティログの監査設計 — 追跡可能性。
  11. JWT の安全な利用(署名・期限・スコープ) — トークン管理。
  12. 暗号化(対称/非対称)の基本と用途選定 — データ保護。
  13. キー管理のベストプラクティス — 鍵漏洩防止。
  14. 依存ライブラリの脆弱性スキャン(OWASP Dependency-Check) — サプライチェーン保護。
  15. セキュリティテスト(ペネトレーション・静的解析) — 脆弱性発見。
  16. TLS 証明書のローテーション設計 — 運用安全性。
  17. セッション固定攻撃対策(セッション ID 再発行) — 認証強化。
  18. レートリミットとブルートフォース対策 — アカウント保護。
  19. セキュリティヘッダ(Content-Security-Policy 等)設定 — ブラウザ防御。
  20. インプットバリデーションとホワイトリスト化 — 基本防御。

(注:番号は継続表示上の都合で 401〜420 を使用しています。)


431〜450:パフォーマンス・プロファイリング(20件)

  1. ガーベジコレクションの基本(GC 種類) — メモリ管理理解。
  2. GC チューニングの基本パラメータ(Xmx/Xms, GC 選択) — メモリ最適化。
  3. ヒープダンプの取り方と解析(MAT) — メモリリーク調査。
  4. スレッドダンプの解析 — デッドロック/スタック状態特定。
  5. プロファイラ(YourKit, VisualVM)の使い方 — CPU/メモリ分析。
  6. ネイティブメモリリークの検出 — JNI 使用時の注意。
  7. オブジェクトアロケーション低減のテクニック — GC 負荷軽減。
  8. HotSpot の JIT 最適化理解 — 実行性能の把握。
  9. キャッシュ設計(TTL, LRU) — レスポンス最適化。
  10. I/O ボトルネックの測定と改善 — 総合性能向上。
  11. レイテンシ分解(ネットワーク/DB/CPU) — ボトルネック特定。
  12. ベンチマーク設計(負荷ツール活用) — 性能要件検証。
  13. メモリプールの活用(ByteBuffer プール等) — メモリアロケーション削減。
  14. GC ログ解析と可視化 — 長期トレンド分析。
  15. コードホットスポットの特定(sampling/profile) — 最適化対象抽出。
  16. オブジェクトの再利用パターン(オブジェクトプーリング) — 作成コスト低減。
  17. ネットワーク効率化(バッチ化・圧縮) — 帯域削減。
  18. レスポンス時間 SLA 設計 — 運用品質指標。
  19. メトリクスの定着(Prometheus + Grafana)による監視 — 可観測性。
  20. 遅延ログの集約とアラート設計 — 早期発見。

451〜475:設計パターン・アーキテクチャ(25件)

  1. シングルトンパターンの正しい実装 — グローバルリソース管理。
  2. ファクトリパターン(Factory) — インスタンス化の抽象化。
  3. ビルダーパターン(Builder) — 複雑オブジェクト生成。
  4. ストラテジーパターン — アルゴリズム切替。
  5. オブザーバーパターン(イベント駆動) — 通知設計。
  6. デコレータパターン — 機能追加の柔軟化。
  7. アダプタパターン — 既存 API の橋渡し。
  8. MVC / MVVM 等のプレゼンテーションパターン — UI 層設計。
  9. リポジトリパターン — 永続化抽象化。
  10. サービスレイヤーとドメインモデルの分離 — 層別責任。
  11. CQRS(コマンド/クエリ分離)の基本 — スケーラビリティ。
  12. Event Sourcing の概念 — 履歴ベースの状態管理。
  13. Circuit Breaker(設計的導入) — 外部依存保護。
  14. Saga パターン(分散トランザクション) — マイクロサービスの一貫性。
  15. API ファースト設計(OpenAPI) — チーム協業。
  16. Hexagonal Architecture(ポートとアダプタ) — テスト容易性。
  17. Domain-Driven Design の基礎概念(Aggregate, Entity) — 複雑業務設計。
  18. Anti-Corruption Layer(ACL) — レガシー統合戦略。
  19. バルクヘッドパターン(障害隔離) — SRE 的耐障害性。
  20. テンプレートメソッドパターン — 処理共通化。
  21. Flyweight パターン(軽量共有) — メモリ効率化。
  22. Proxy パターン(遅延ロード、アクセス制御) — 管理と制御。
  23. Adapter vs Facade の使い分け — API 表現の最適化。
  24. Strangler Fig パターン(段階的置換) — レガシー移行戦略。
  25. Bulkhead と Throttling の組合せ設計 — 可用性戦略。

476〜490:外部 API・連携(15件)

  1. メッセージング基礎(JMS / RabbitMQ / Kafka) — 非同期連携。
  2. Kafka の基本概念(Topic, Partition, Offset) — 高スループット配信。
  3. メッセージの可搬性(Idempotency)設計 — 冪等性確保。
  4. ファイル連携パターン(ポーリング vs Push) — 外部システム統合。
  5. SOAP と REST の使い分け — 既存システム連携。
  6. API 認証フローの標準化(OAuth2) — セキュア統合。
  7. バッチインポート/エクスポートの設計(チェックポイント) — リカバリ対応。
  8. イベント駆動アーキテクチャ(EDA)導入要点 — 非同期連携。
  9. 外部サービスの契約設計(SLAs) — 運用安定性。
  10. データフォーマット中立化(契約層の導入) — 変更耐性。
  11. Webhook 受信の検証と再試行戦略 — 受信側堅牢化。
  12. メッセージフォーマットの互換性維持(schema registry) — サービス連携。
  13. API ゲートウェイでの認証・課金・監視実装 — 運用統制。
  14. ETL パイプラインの設計(抽出/変換/ロード) — データ統合。
  15. バルクデータ転送の最適化(圧縮、スレッド) — 帯域/時間短縮。

491〜500:実務で便利な小ネタ・ユーティリティ(10件)

  1. 環境変数 / コンフィグの安全取得パターン — デプロイ柔軟性。
  2. アプリ内メトリクス(カスタムメトリクス)基礎 — SLA 監視。
  3. 簡単なコマンドラインツール作成(picocli など) — 管理ユーティリティ。
  4. CSV/Excel 生成(Apache POI) — レポート出力。
  5. ファイル名タイムスタンプ付与とローテーション — ログ/出力管理。
  6. バージョン情報(MANIFEST.MF)を利用した表示 — デバッグ/運用。
  7. 設定のホットリロード(可能な箇所のみ) — 運用性向上。
  8. 健全性チェックと自動復旧スクリプト連携 — 運用自動化。
  9. 簡潔な CLI ロガーの実装(短いスタブ) — スクリプトツール向け。
  10. ドキュメント生成(Asciidoctor / Swagger)自動化 — 開発者体験向上。

スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました