黑马程序员技术交流社区

标题: string 类型在赋空值时 [打印本页]

作者: 胡元江    时间: 2013-2-26 10:44
标题: string 类型在赋空值时
  null string.empty    "" 三者之间有没有什么实际的区别。在内存中间是不是都是不占位置的用哪一个好一般(虽然对性能影响不会很大,但是弄清楚总是好的)
作者: xiaoxiang_04    时间: 2013-2-26 10:51
“”和null的区别就是“”分配存储空间,null没分配存储空间
string.empty ,你转到定义发现是这么写的,public static readonly String Empty = "";
也就是说string.empty也是分配了一片存储空间,该地址指向堆内存的一块长度为0的区域,该区域存放空字符串"".也就是说""和string,empty效果是一样的.那么,它们的区别在哪里呢?在性能上.string.empty在语法上进行了优化,当编译msil时,会直接把改字符串引用指向系统""空间上;而""则先在字符串表查找是否有"",然后才指向它.所以string.empty的性能优于“”.当判断字符串是否为空时,性能上str.length==0>str==string.empty>str=="".
作者: 生活墨墨    时间: 2013-2-26 10:57
   初始化的时候用    string.empty 比较好。 "" 占用了内存。为null的时候如果赋值会报错。  判断是否为空的时候 str.length>0 是最好的,性能最好
作者: 李景荣    时间: 2013-2-26 11:35
string.empty==“”  ,是占用了内存空间的
null  没有占用内存空间




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2