Java | 面接・筆記試験・コーディングテストで非常によく聞かれる Java Tips

Java Java
スポンサーリンク

以下は、面接・筆記試験・コーディングテストで非常によく聞かれる Java Tips を、出題頻度が高い順・実務視点で体系的にまとめたものです。
(丸暗記ではなく「なぜそうなるか」を説明できるレベルを想定しています)


① 言語仕様・基本構文(最頻出)

1. == と equals() の違い

  • ==:参照(アドレス)比較
  • equals():内容比較(Object は参照比較)
  • String / Integer はオーバーライド済み

2. String は不変(immutable)

  • 変更時は新しいインスタンス生成
  • 文字列結合は StringBuilder を使う

3. StringBuilder と StringBuffer

  • StringBuilder:非同期・高速
  • StringBuffer:同期化・低速

4. final の3用途

  • 変数:再代入不可
  • メソッド:オーバーライド不可
  • クラス:継承不可

5. プリミティブ型とラッパークラス

  • int vs Integer
  • オートボクシング / アンボクシング

② コレクション(超頻出)

6. ArrayList と LinkedList

観点ArrayListLinkedList
検索速い遅い
追加削除遅い速い
メモリ

7. HashMap の仕組み

  • hashCode() → バケット → equals()
  • Java8 以降は衝突時に赤黒木

8. HashMap と ConcurrentHashMap

  • HashMap:非スレッドセーフ
  • ConcurrentHashMap:部分ロック

9. Set と List

  • Set:重複不可
  • List:順序あり・重複可

10. Collections と Collection

  • Collection:インタフェース
  • Collections:ユーティリティクラス

③ オブジェクト指向(理解必須)

11. 継承と委譲の違い

  • 継承:is-a
  • 委譲:has-a(実務推奨)

12. 抽象クラス vs インタフェース

項目抽象クラスインタフェース
継承単一多重
フィールド定数のみ
実装一部可デフォルト可

13. オーバーライドの条件

  • 引数同じ
  • 戻り値は共変可
  • アクセス修飾子は弱くできない

14. ポリモーフィズム

  • 親型参照 + 子インスタンス
  • 実行時バインディング

④ 例外処理(面接常連)

15. Exception と RuntimeException

  • Exception:検査例外
  • RuntimeException:非検査例外

16. try-catch-finally

  • finally は基本必ず実行
  • return があっても実行される

17. 独自例外を作る理由

  • 業務エラーの意味を明確化
  • ログ・ハンドリング向上

⑤ JVM・メモリ(中〜上級)

18. ヒープとスタック

  • ヒープ:オブジェクト
  • スタック:ローカル変数・参照

19. ガベージコレクション

  • 到達不能オブジェクトを回収
  • System.gc() は保証なし

20. クラスロードの流れ

  • ロード → リンク → 初期化

⑥ マルチスレッド(差がつく)

21. synchronized

  • 排他制御
  • メソッド or ブロック単位

22. volatile

  • 可視性保証
  • 排他制御ではない

23. Thread vs Runnable

  • Runnable 推奨(多重継承回避)

24. ExecutorService

  • スレッドプール管理
  • shutdown() 必須

⑦ Java8+(現代Java)

25. Lambda式

list.forEach(s -> System.out.println(s));
Java

26. Stream API

  • map / filter / collect
  • 遅延評価

27. Optional

  • NullPointerException 回避
  • isPresent() より orElse

28. default メソッド

  • 既存IFの後方互換

⑧ よくある引っかけ問題

29. null instanceof Object

false

30. finally の return

tryreturn を上書き

31. Integer キャッシュ

  • -128 ~ 127 は同一参照

32. 配列は参照型

  • メソッド引数で変更される

⑨ 実務・設計系(評価が上がる)

33. static の使いどころ

  • 状態を持たせない処理
  • ユーティリティ

34. 不変オブジェクトの利点

  • スレッドセーフ
  • バグ減少

35. ログは System.out ではない

  • SLF4J + Logback

⑩ 面接官がよく聞く質問例

  • HashMap の中身を説明してください」
  • equals() だけ実装すると何が起きますか」
  • volatile は何を保証しますか」
  • String が immutable な理由は?」
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました