字符串不是值类型,但我们仍然使用它的值类型。那么,string s;
编译成类似string s = new String(..);
?是“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 – 2012-03-11 11:05:33
相关问题
- 1. 声明String s = new String(“abc”)。intern(); over String s =“abc”(反之亦然)
- 2. 在Java中,是String s = new String()有没有用?
- 3. string s; &s+1;法律? UB?
- 4. python string u“%(word)s”
- 5. Double.valueOf(String s)和Double.ParseDouble(String s)有什么区别?
- 6. 为什么string str = new string(“abc”)不能通过编译器?
- 7. 如何使用System.Web.UI.Page.DecryptString(String s)?
- 8. TextView String(s)不出现
- 9. android getSystemService(String s) - 反射?
- 10. className.main(new String [] {“filename.txt”})?
- 11. force assertEquals(String s,Object o)使用o.toString()?
- 12. String和new String有什么区别?
- 13. 对String [] s的列表进行排序?
- 14. 我无法使用Color.FromName(string s)方法
- 15. 在Android中String foo =“bar”与String foo = new String(“bar”)?
- 16. Map <String,Map <String,Boolean >> myMap = new HashMap <String,HashMap <String,Boolean >>();
- 17. HashMap <String,String> temp = new HashMap <String,String>();对于通图像
- 18. “string”!=“string”
- 19. String [] tempString = multipleValues.split(“ - ”);但是int创建数组的格式String [] array = new String [10];?
- 20. ComboBox.FindStringExact(string s) - 如果字符串s为空,它有什么用途返回0?
- 21. 如何将List [List [Map [String,String]]]转换为List [Map [String,String]]
- 22. 'String'不能转换为'String?'
- 23. “new String()”导致GC_CONCURRENT语句?
- 24. Scanner.hasNext(String s)已为 “\\ d \\ \\小号d” 失败
- 25. String .contains another String
- 26. Convert.ToDecimal(string)&Decimal.Parse(string)
- 27. c string string strncpy
- 28. TypeScript - [string] vs string []
- 29. 值分裂不是(String,String)的成员
- 30. Integer.decode(String s)为某些字符串抛出NumberFormatException
我不这么认为。 – BoltClock 2012-03-11 10:13:55
当你做'string s;'时,没有任何东西被实例化。 – 2012-03-11 10:14:32
但是,如果它不是一个值类型,它必须用'new'实例化,不是吗? – theateist 2012-03-11 10:15:36