12

私は OCA SE 7 試験の準備をしていますが、これらの質問のいくつかは本当に (!) トリッキーです。

使用している本の中に誤りがあったと思いますので、以下を確認したいと思います...

public static void main(String... args) {
    String autumn = new String("autumn");      // line one
    System.out.println("autumn" == "summer");  // line two
}

printlnメソッドの実行後String、プールにはいくつのオブジェクトがあるでしょうか?

私の理解では、 - 1行目は文字列をプールに追加しません - 2行目は「秋」と「夏」を作成し、それらをプールに追加しますしたがって、本の正解は2です.

しかし、私はまた...私は試験問題に偏執的であるはずなので...文字列「false」も作成されてプールに追加されると思います...したがって、3が正しい答えであると思います...それとも...「true」と「false」はデフォルトでJVMによってすでにプールに入れられていますか?...

誰か確認してくれませんか?


編集:いくつかの調査の後、本の「エラー」について話すのは公平ではないことがわかりました。一般的なヒント: 試験問題は通常、「次のコード」の観点から定式化されます。そのため、コード自体がローカルで行っていることの昔ながらの単純な計算に明らかに関心があります。したがって、スコープでは、println(boolean b)実装またはコンパイラの最適化の検査は許可されません。けっこうだ :)

4

2 に答える 2