だけで開始できる場合
String s = "Hello";
では、なぜクラスなのですか?パラメータはどこにありますか?
String s = "Hello";
単なる構文糖衣です。実際には参照型として実装されています。(これは不変の参照型であるため、変更できません)
これString
は非常に便利で頻繁に使用されるクラスである""
ため、インスタンスを作成するための特別な構文(文字列リテラル表現を介して:内部のテキスト)がありますが、意味的にはこれら2つは同等です。
String s = "Hello"; // just syntactic sugar
String s = new String("Hello");
内部では、両方の形式は100%同等ではありません""
。これは、を使用する構文がJavaの文字列プールから文字列を再利用しようとするのに対し、withを明示的にインスタンス化するnew String("")
と常に新しいオブジェクトが作成されるためです。
ただし、間違いなく、どちらの構文でもオブジェクトインスタンスへの参照が生成されます。文字列は、Javaではプリミティブ型とは見なされず、他の構文と同様にクラスのインスタンスです。
String s = "Hello";
JVMはそれを次のように扱います。
String s = new String("Hello");
そしてそれを文字通りString
プールするためにインターンします。String
この例の行は、Stringオブジェクトを作成しています。あなたが考えている伝統的な意味でのパラメータはありません。