以下に、面接・試験でよく聞かれる Java Tips を
新卒/中途(若手〜中堅)/シニアの レベル別・評価観点付きで再構成します。
(各レベルで「ここを説明できると合格/高評価」という基準を明確にしています)
① 新卒向け(基礎理解ができているか)
面接官の評価ポイント
- 文法・概念を正確に説明できる
- 暗記ではなく理由を言語化できる
- バグを生みにくい書き方を知っている
必須 Java Tips(新卒)
1. == と equals() の違い
==:参照比較equals():内容比較- String での違いを説明できること
2. String が immutable な理由
- セキュリティ
- キャッシュ(文字列プール)
- スレッドセーフ
3. プリミティブ型と参照型
- スタック / ヒープの違い
- 引数渡しの挙動
4. final の意味
- 変数・メソッド・クラスの違い
5. 配列と List
- サイズ固定 vs 可変
- 使い分け
6. ArrayList と LinkedList
- 検索・追加・削除の違い
7. 例外処理の基本
try / catch / finallythrowsの意味
8. Exception と RuntimeException
- チェック例外/非チェック例外
9. 継承とオーバーライド
@Overrideの意味- アクセス修飾子制限
10. static の基本用途
- ユーティリティメソッド
- インスタンス不要な処理
合格ライン
「Java の基本文法と概念を理解し、なぜそうなるかを説明できる」
② 中途向け(実務で使えるか)
面接官の評価ポイント
- 設計意図を説明できる
- バグ・性能・保守性を意識している
- ライブラリ・標準APIを正しく使える
必須 Java Tips(中途)
1. equals() と hashCode()
- 両方実装しないと起きる問題
HashMapでの挙動
2. HashMap の内部構造
- ハッシュ → バケット → 衝突
- Java8 の木構造化
3. 不変オブジェクトの設計
- フィールド
final - defensive copy
4. List / Set / Map の使い分け
- 業務要件との対応
5. Stream API
map / filter / collect- ループとの使い分け
6. Optional の正しい使い方
- フィールドに持たない
orElseGetとorElse
7. マルチスレッド基礎
synchronizedvolatileの役割
8. ExecutorService
- スレッドプール管理
shutdown()の重要性
9. ログ設計
System.out.printlnがNGな理由- ログレベルの使い分け
10. 例外設計
- 業務例外 vs システム例外
- 握りつぶしの危険性
合格ライン
「実務で安全・保守的に Java を書ける」
③ シニア向け(設計・判断ができるか)
面接官の評価ポイント
- トレードオフを説明できる
- チーム・長期運用を見据えた設計
- JVM・性能・障害対応の理解
必須 Java Tips(シニア)
1. JVM メモリ構造
- Heap / Stack / Metaspace
- OOM の種類
2. GC の理解
- 世代別GC
- Stop-The-World
3. ConcurrentHashMap の仕組み
- セグメントロック(旧)
- CAS(新)
4. スレッド安全設計
- 不変オブジェクト
- スレッド閉じ込め
5. パフォーマンスチューニング
- オブジェクト生成削減
- キャッシュ戦略
6. API 設計
- 破壊的変更を避ける方法
- 後方互換性
7. 例外・ログ・監視の統合設計
- 障害調査を意識した設計
8. フレームワーク依存の危険性
- Spring 任せにしない理解
9. コードレビュー観点
- バグより「将来の変更耐性」
10. 技術選定の説明力
- なぜ Java か
- なぜその実装か
合格ライン
「技術的判断を言語化し、チームをリードできる」
面接で一段評価を上げる一言(例)
- 新卒「Java がこういう仕様なのは◯◯を防ぐためです」
- 中途「実務では◯◯の理由でこちらを選びます」
- シニア「この設計は短期では楽ですが、長期では問題になります」


