文字列は値型ではありませんが、値型のように使用します。だから、のようにコンパイルされたstring s;
はありますか?"string s;"ですか? "string s = new String(..);"にコンパイルされました。
0
A
答えて
2
string s;
を定義すると、現在は何も指していない参照のみが定義されます。文字列は参照型なので、コンパイラはstring s = new String(..);
を生成しません。あなたはstring s = null;
がコンパイル結果になるのでそれを理解するかもしれません。
intなどの値の型は、大文字と小文字が異なります。たとえば、int i;
を定義すると、int i = 0;
にコンパイルされます.0はデフォルト値です。
0
私は混乱を理解しました。thisのポストを読んだあと、スタックは初期化後にヒープに割り当てられるs
への参照を保持することを理解しました。
+0
私は誰が投票したのかわかりませんが、ここでの理解は、あなたが質問で表現したものよりはるかに優れています。しかし、それはまだ文字列の謎の一部だけをカバーしています。文字列を特別にするもう一つの重要なことがあります。http://msdn.microsoft.com/en-us/library/system.string.isinterned.aspx –
関連する問題
- 1. String method replaceAll(String s、String replacement)
- 2. main(String ... s)とmain(String [] s)の違いは何ですか?
- 3. Stringを宣言する利点は何ですか?s = new String( "abc")。intern();オーバーストリングs = "abc"(またはその逆)
- 4. std :: string s()strange behavior
- 5. php regex "-s from string
- 6. android getSystemService(String s) - reflection?
- 7. std :: string s =(std :: string) "a" + "b" + "c"; OK?
- 8. NSString * s = @ "string"とNSString * s = [[NSString alloc] initWithString:@ "string"]の違いは何ですか?
- 9. `String s =" Hello "`は `String`のコンストラクタを呼び出しますか?
- 10. Double.valueOf(String s)と新しいDouble(String s)を呼び出す違いは何ですか?
- 11. String s = "sometext"はどのように動作しますか?
- 12. 与えられた `Index`で` String`sに簡潔にアクセスするには?
- 13. Jave - メソッドは - parseByte(String s、int radix) - 理解できません
- 14. boost :: format form c-stringまたはstd :: string
- 15. が見つかりましたString、必須(String、String、String、Int):tuples-scala
- 16. NoClassDefFoundError 'new SSHClient.authPublickey(String、KeyProvider)'のメソッド
- 17. 値splitは(String、String、String、String、String)のメンバーではありません
- 18. String []
- 19. IDictionary <string、string>またはNameValueCollection
- 20. List(String、String)をListMap [String、String]に変換する方法は?
- 21. Scala Map [String、List [String]]をマップ[String、String]に変換する
- 22. String.Formatと "string" + "string"またはStringBuilder?
- 23. Map <Integer、String>またはString []?
- 24. 何が問題なのですか?\t LinkedList <String> stringList = new LinkedList <String>();
- 25. (String、String)=> [(Long、String)]を試してください。
- 26. String^MyString = gcnew String( "abcd");
- 27. String.Replace(char、char)またはReplace(string、string)?
- 28. Json StringをList <HashMap <String、String >>に変換するにはどうすればよいですか?
- 29. Stringメソッドを直接呼び出すと、そのStringもStringプールに格納されますか?
- 30. Base64 String to Json String
私はそうは思わない。 – BoltClock
'string s;'を実行すると、何もインスタンス化されません。 –
しかし、値の型ではない場合、 'new'でインスタンス化する必要がありますか? – theateist