Hatena::ブログ(Diary)

やさしいデスマーチ このページをアンテナに追加 RSSフィード

札幌のWebエンジニアの綴る日常と開発の日々。
GoogleAppEngine/slim3/Django/NetBeans/Swing/JavaFXを中心にお届け。

2011-03-05

Javaプログラマであるかを見分ける10の質問

| 10:31 |  Javaプログラマであるかを見分ける10の質問を含むブックマーク

元ネタはこちらですが、「優れたJavaプログラマ」を見分ける質問ではありません*1。次のような状況を想定してください。

受託業務を中心にしている弊社は、Javaで業務系ウェブアプリケーションの開発を行う事になりました。しかし社内のリソースを使うにも1−2名足らない事が見積もりから解っています。そこで、中堅エンジニアを1−2名募集することになりました。正社員派遣かは問いませんが、経験が3年程度の中堅プログラマが必要です。同等またはそれ以上のスキルを持つ正社員がプロジェクトを牽引しますが、ゼロから教えながら教育することはできないので、必要最低限のスキルを持っていることが条件になります。

こんな状況を想定して、面接の質問を考えてみました。経験が3年程度あれば、問題なく答えられるはずです*2。尚、質問はホーム言語がJavaである前提です。

下記質問にそれぞれ50文字以内を目安に簡単に説明すること。

  1. ==演算子とequalsメソッドの違いは何か?
  2. 文字列の+演算子による連結とStringBuilderを使った連結の違いを説明せよ。文字列の連結は原則として+演算子を使ってはならない理由を説明せよ。
  3. List<Integer>のようにジェネリクス型を使う主たる目的は何か?
  4. オブジェクトガベージコレクションGC)される主たる条件は何か?
  5. チェック例外と非チェック例外の違いを型と例外処理の観点で説明せよ。
  6. フィールドのアクセス修飾子をprivateにしgetter/setterメソッドを提供する事でフィールドを参照する設計方針を取る主な理由を説明せよ
  7. NullPointerExceptionが発生するのは主にどういう状況か?
  8. オーバーロードとオーバーライドの違いは何か?
  9. コンストラクタとは何か?
  10. インターフェイスを利用する目的を1つ説明せよ

80%程度は回答できるプログラマを採用したい所です。

追記

文字列の連結については語弊が無いような表記に変えてみました。

*1:自称Javaプログラマを見分ける質問です

*2:職場でやってみるのはホラーの場合がありますのでご注意ください

nowokaynowokay 2011/03/05 13:52 「文字列の連結は原則として+演算子を使ってはならない理由」ってなんででしょう?
String a = new StringBuilder().append(name).append("(").append(age).append(")");
みたいなコードかかれてたら失笑を買うのではないかと。
アプリケーション中で継続して文字列が追加されていくような場合やよほどパフォーマンスが気になる場合じゃなければ、+演算子でいいんじゃないでしょうか。

ふかふか 2011/03/08 13:54 +も内部的にはStringBuilderなんだし、newコストさえ理解してれば読みやすい方でよいのでは?

shuji_w6eshuji_w6e 2011/03/08 22:49 >nowokay
補足して訂正しました。

shuji_w6eshuji_w6e 2011/03/08 22:49 >ふか
そうですね

トラックバック - http://d.hatena.ne.jp/shuji_w6e/20110305/1299288660