A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡元江 中级黑马   /  2013-2-26 10:44  /  1944 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  null string.empty    "" 三者之间有没有什么实际的区别。在内存中间是不是都是不占位置的用哪一个好一般(虽然对性能影响不会很大,但是弄清楚总是好的)

3 个回复

正序浏览
string.empty==“”  ,是占用了内存空间的
null  没有占用内存空间
回复 使用道具 举报
   初始化的时候用    string.empty 比较好。 "" 占用了内存。为null的时候如果赋值会报错。  判断是否为空的时候 str.length>0 是最好的,性能最好
回复 使用道具 举报
“”和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=="".
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马