ちょっとした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
-
技術文書・技術解説
[ネットアップ合同会社] 金融庁ガイドラインから読み解く、「次世代データレジリエンス」の在り方 -
製品資料
[ネットアップ合同会社] 製造DXでデータ活用ニーズが拡大 分散データ活用とAI活用をどう実践する? -
製品レビュー
[ネットアップ合同会社] AIで使いたいデータが内外に点在、研究におけるAI活用を阻む“真の課題”とは -
製品資料
[株式会社kickflow] 稟議・承認作業の「脱オンプレ・脱Excel・ペーパーレス化」を一気に進める方法 -
製品レビュー
[株式会社kickflow] ワークフローシステムのクラウド化 “みんなが不幸になる”事態を避けるには?
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「契約業務のAI活用」に関するアンケート
-
2
IT製品の導入に関するアンケート「セキュリティ」編
-
3
なぜ人はいるのにDXが進まない? ライオンも直面した“老害”レガシーシステム
-
4
「有線LAN環境」に関するアンケート
-
5
「エージェントを作るな、スキルを作れ?」 Anthropicが提唱するAI運用の勘所
-
6
半数がブルーカラー転向を視野に? ベテランエンジニアを追い込む“54歳の壁”
-
7
シャトレーゼを悩ませる偽メール 混乱なしでBIMI導入とDMARC強化を実現した方法
-
8
PHP脆弱性「PHP2Shell」で2260万件に影響 情シスの緊急チェックリスト
-
9
障害対応に「余裕なし」が9割超 運用担当316人調査で見えた「運用赤字」
-
10
「Microsoft 365」が乗っ取られる MFAを破る“本物の画面”の恐怖
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
2026年のサイバーセキュリティには何が必要か? 最新データに学ぶ傾向と対策
-
3
経験豊富な即戦力人材に直接アプローチできる、「攻めの採用」への転換術
-
4
「IT史に名を残すシステム障害」8選
-
5
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
6
10G回線の真価をフルに享受するには? 導入前にチェックしたいポイント
-
7
AI駆動開発のスピードと安全性を両立 「品質・セキュリティ管理」の実践ガイド
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
「標的型攻撃メール」事例・サンプル集
-
10
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー