「Java」エンジニアが求人面接でJavaや「Eclipse IDE」に関する質問をされたとき、それまでの経験や知識だけで乗り切ることが正しい選択ではない場合がある。ある“奥深い問題”を例に考えてみよう。
プログラミング言語・実行環境「Java」は、企業のシステム開発で根強い人気を保っている。Javaエンジニアとして活躍する上で欠かせないスキルに関する知識を問う、一見シンプルな質問が以下にある。これはシンプルに見えるが、意外と奥が深い。
Java向け統合開発環境(IDE)「Eclipse IDE」で図のコードスニペット(短いソースコードのまとまり)を表示した場合、赤い「×」印が何を表すのかを簡潔に説明してください。
この質問に対する“正しい答え”を考えてみよう。
このようなトリッキーな質問を面接で出された場合、求職者は自分のソフトウェア開発スキルをアピールするため、もっともらしい答えを探すだろう。Javaの経験豊富なエンジニアは、以下のように回答しがちだ。
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の豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。
社会人Z世代の休日の過ごし方 関東と関西の違いは?
大広若者研究所「D'Z lab.」は、37人へのインタビューと1000人へのアンケートを基に、社...
製造業の8割が既存顧客深耕に注力 最もリソースを割いている施策は?
ラクスは、製造業の営業・マーケティング担当者500人を対象に、新規開拓や既存深耕におけ...
「生成AIで作った広告」が物議 そのとき、コカ・コーラはどう動いた?
生成AIを広告制作に活用し、議論を呼んだCoca-Cola。この経験から何を学んだのか。