ちょっとしたJavaの質問を深く考察する【前編】
「Java」の一見簡単そうな質問の“本当の答え”とは?
「Java」エンジニアが求人面接でJavaや「Eclipse IDE」に関する質問をされたとき、それまでの経験や知識だけで乗り切ることが正しい選択ではない場合がある。ある“奥深い問題”を例に考えてみよう。
プログラミング言語・実行環境「Java」は、企業のシステム開発で根強い人気を保っている。Javaエンジニアとして活躍する上で欠かせないスキルに関する知識を問う、一見シンプルな質問が以下にある。これはシンプルに見えるが、意外と奥が深い。
Java向け統合開発環境(IDE)「Eclipse IDE」で図のコードスニペット(短いソースコードのまとまり)を表示した場合、赤い「×」印が何を表すのかを簡潔に説明してください。
この質問に対する“正しい答え”を考えてみよう。
トリッキーなJavaの質問に答えるには
このようなトリッキーな質問を面接で出された場合、求職者は自分のソフトウェア開発スキルをアピールするため、もっともらしい答えを探すだろう。Javaの経験豊富なエンジニアは、以下のように回答しがちだ。
- 条件文があるため、×印が付いている行は実行されない。
- コードスニペットなので、「mainメソッド」がない。
1は、「if」文の条件が真であれば「return "red"」が実行され、メソッドが終了する。条件が偽であれば「return "green"」が実行され、真の場合と同様にメソッドが終了する。メソッドとは、特定のタスクを実行するためにまとめられた再利用可能なソースコードのまとまりを指す。「return」文は、呼び出し元に値を返す命令だ。このif文は、条件が真であればifのブロックにある命令が、偽であればelseのブロックにある命令が実行されるようになっており、そのどちらにもreturn文がある。return文が実行されるとメソッドは終了するため、その後ろにあるソースコードは実行されないという考え方だ。
2は、Javaプログラムを実行するためのmainメソッドが欠けていることを指摘している。mainメソッドはプログラムのエントリーポイント(開始点)となり、Javaプログラムを実行するJVM(Java仮想マシン)が最初に呼び出すメソッドだ。問題のコードスニペットにはmainメソッドがないので、プログラムのエントリーポイントがなく、×印はプログラムとして不備があることを示しているという見解だ。
どちらも真面目な答えであり、意味が通らないわけではないが、どちらの答えも間違いだ。
この質問の「本当の答え」
以下に簡潔な答えを示そう。
- 「赤い×印」はない。
- 「赤い丸の中にある白い×印」はあるが、赤い×印はない。
- では、白い×印の原因は何か。
- それは、到達不可能なソースコードを指している。
条件文のtrueとfalseの両方でreturn文(呼び出し元に値を返す命令)が実行される場合、ifブロックの後に続くソースコードは実行されない。つまりその行は到達不可能だ。
こうした質問は揚げ足を取るだけの存在のように思えるが、そうではない。次回は、このようなトリッキーな質問が職場で果たす役割を考察する。
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
この記事の著者
関連記事
新着ホワイトペーパー PR
-
技術文書・技術解説
[Jamf Japan 合同会社] MDMだけでモバイルセキュリティは十分? 不足する対策を16項目でチェック -
事例
[Wrike Japan 株式会社] 世界的な家電メーカーが実践する「クリエイティブプロセス効率化」の方法とは? -
事例
[Wrike Japan 株式会社] 世界的テクノロジー企業に学ぶ、プロセス標準化とプロジェクト納品自動化の秘訣 -
事例
[Wrike Japan 株式会社] ソニー・ピクチャーズ テレビジョンに学ぶ、次世代サービスデリバリーのヒント -
事例
[Wrike Japan 株式会社] ソミック石川に学ぶ、ICT浸透後に直面した「工数管理」の課題と解決策
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
脱VMwareの前提が崩れる BroadcomのVDDK公開停止で確認すべき点
-
2
「Microsoft 365」が乗っ取られる 跡形もなくMFAを破る手口
-
3
膨らむAIコストに歯止め GitHubのマルチモデルルーターは何が違うのか
-
4
「Microsoft一択」で本当にいいのか 知らぬ間にライセンス費用が膨らむ真相
-
5
エンジニアが選考を辞退する本当の理由 7割が隠す“面接の違和感”とは
-
6
AI全部入り「Microsoft 365 E7」に企業が二の足を踏む訳 移行意向はわずか4%
-
7
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
8
「VMware離れ」は本当か 3000社がVCF 9にかじを切った現実的な理由
-
9
Oracle巨大ITプロジェクトはなぜつまずいたのか 8年で導入1割、追加で170億ドル
-
10
Anthropicが明かす AIは入力データを「どこまで覚えているのか」
ホワイトペーパーランキング PR
-
1
マンガで解説:「ゼロトラスト」「SASE」の必要性とメリット
-
2
5回聞くだけじゃ足りない? トヨタ式「なぜなぜ分析」の正しい実践方法
-
3
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
4
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
5
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
6
国税庁の次世代基幹システム「KSK2」稼働開始に向けて、対応すべき変更点とは?
-
7
5分で分かる「セキュア大容量ファイル転送サービス」の機能とメリット
-
8
ドラマで分かる、標的型攻撃メールの被害を受ける企業と回避できる企業の分岐点
-
9
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
10
少額減価償却資産が40万円未満へ拡大、令和8年度税制改正で押さえるべき変更点
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー