0

次のコードを検討してください。

public static void main( String args[] ) throws Exception{

        String  a = "sharmaji";

        String b = args[0];

        System.out.println(a==b);

}

ここで、コマンド ライン引数を「sharmaji」として渡すと、a==b は false を返します。これは、java が new String(...) 引数を使用して文字列を作成することを示唆しています。

Javaがユーザー入力をバイトとして読み取ってから文字列に変換する必要があるためですか?

4

2 に答える 2

1

これは、コマンド ライン引数から作成された文字列が で作成されruntime、コンパイラがそれらについて何も知らないためです (どの値がプログラムに渡されるか)。

例 3.10.5-1を考えてみましょう。Java がその内部文字列「キャッシュ」をどのように使用するかをよりよく理解するための JLS の文字列リテラル。

于 2013-06-06T09:02:41.513 に答える