Personal tools
You are here: Home ブログ 井上 Javaの良い設問を募集
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

Javaの良い設問を募集

相手のプログラミング能力を試すためのJavaの良い問題を探しています。

次のモノは却下です。

  • 文法を問うもの
  • 特定のクラスライブラリの知識を問うもの
  • 現実に目にすることが無さそうなコードに関するもの (言語仕様の重箱の隅をつつくような設問)
  • ひらめき問題

以前、C言語版の問題を作りました。今見返すと、言語の癖や落とし穴を問うような設問になっています。もっとも、上の3番目の基準には外れていません。現実のCプログラミングで起きそうなコードの設問にしています。言語オタクをふるいにかけるのが目的ではなく、普段からコードを書き慣れているかを見極めるのが目的だからです。上の4つの基準の狙いはこの目的のためです。だから特に難しい設問を作りたいわけではありません。

今のところ思いついたのは一問だけです。

  • [Q1]次のコードの問題点を述べよ。その理由も述べよ。
ArrayList<String> list = new ArrayList<String>();

あと、IoC(制御の反転)的な感覚を問う問題も出したいところですが、問題を書きすぎると狙いが見え見えになるので、考え中です。

良い問題が無いかと探して、http://suned.sun.co.jp/JPN/certification/progsq.htmlを見ました。これを問題として出してもいいですが、アリエルでの模範解答は「くだらなすぎて答える気にならない」です。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/seek-for-exam/tbping

Re:Javaの良い設問を募集

Posted by anaka at 2007-04-13 09:35
問1. 文字列の配列をカンマ区切りで連結して一つの文字列にしてください

回答例
String[] array = new String[] {"abc", "xyz", "", "123"};
String result = "";
for (int i = 0; i < array.length; i++) {
if (i > 0) {
result += ",";
}
result += s;
}

問2. 問1の機能を持ったメソッドを定義してください

回答例
class StringUtils {
public String join(String[] array) {
String result = "";
for (int i = 0; i < array.length; i++) {
if (i > 0) {
result += ",";
}
result += s;
}
return result;
}
}

Re:Javaの良い設問を募集

Posted by nagai at 2007-04-14 05:22
メモリはどうでしょうか。

[問題]
以下はJ2EEアプリケーションを稼働中に発生した例外スタックトレースです。
java.lang.OutOfMemoryError: PermGen space
この例外の意味、考えられる原因、解決方法を述べてください。

[回答例]
意味:Permanent Generation 領域でメモリリークが発生している。
原因:ロードされたリソース(おそらくは HotSpot によって動的にコンパイルされたJSPファイル)に対し Permanent Generation の領域が少なくなった。
解決:JVMオプションに -XX:PermSize、-XX:MaxPermSize を指定して、十分な Permanent Generation 領域を確保してアプリケーションを再起動する。


・・間違ってたりして。





Re:Javaの良い設問を募集

Posted by inoue at 2007-04-14 21:36
> 以下はJ2EEアプリケーションを稼働中に発生した例外スタックトレースです。
> java.lang.OutOfMemoryError: PermGen space
> この例外の意味、考えられる原因、解決方法を述べてください。

難しい。
ぼくが問題を出される立場なら、「考えても分からないのでWebで調べます」と答えそうです。「孤島にいて調べる手段が無ければどうか」に対しては、「javaコマンドのコマンドラインオプションからメモリに関係ありそうなオプションを探す」とでも答えるかな。
更に問い詰められれば、「ソースコードを見て、寿命の長そうなオブジェクトを大量に抱え込んでいそうか箇所を探す」と答えますが、たぶんこの回答は古くて、「適切なメモリ監視ツールを使って寿命の長いオブジェクトを探す」の方が良いかもしれません。

> 意味:Permanent Generation 領域でメモリリークが発生している。

s/メモリリーク/メモリ不足/
でしょうね。

Re:Javaの良い設問を募集

Posted by nagai at 2007-04-14 23:00
ここなんかどうでしょう?基本的な知識と英語のリーディング能力がわかるのでは。
問題の作成コストもかかりません。
http://java.sun.com/developer/Quizzes/

例えばこれなどが良いでしょうか。
http://java.sun.com/developer/Quizzes/javase6_holiday/holidayquiz06.html


> s/メモリリーク/メモリ不足/
> でしょうね。
面接が「問題を考える」という課題だったら、落ちていたところでした。



Re:Javaの良い設問を募集

Posted by jian at 2007-04-22 23:43
public class Foo {
static int fubar = 42;

Foo getFoo() {
return null;
}

public static void main(String args[]) {
Foo foo = new Foo();
Are_you_maji_desuka:
System.out.println(foo.getFoo().fubar);
}
}
//A:42
//B:-42
//C:0
//D:NullPointer例外
//E:Compile不可
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.