admin管理员组文章数量:1026989
null与空字符串区别
null与空字符串主要区别如下:
1,null不指向任何对象,相当于没有任何值;而“”代表一个长度为0的字符串
2,null不分配内存空间;而“”会分配内存空间
例如:
string str = null;//定义可空类型变量
str = str ?? “”;//使用合并运算符
Console.WriteLine(str); //1000
Console.ReadLine();
结果是 :“”(控制台输出为空)
注:
(1)单问号? 可用于对int,double,bool等无法直接赋值为null的数据类型进行null的赋值
(2)双问号?? null合并运算符,如果此运算符的左操作数不为 null,则此运算符将返回左操作数(左边表达式);否则当左操作数为 null,返回右操作数(右边表达式)
null和空字符的区别:
1、NULL:代表声明了一个空对象,不是一个字符串,可以赋给任何对象。
空字符:代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。
2、String s=null; 只是定义了一个句柄,即你有了个引用,但是这个引用未指向任何内存空间。
String s=”“; 这个引用已经指向了一块是空字符串的内存空间,是一个实际的东东了,所以可以对它操作。
String s=”a”和String s=new String(“a”);是有本质上的区别的 :
(1) 前者是在字符串池里写入一个字符’a’,然后用s指向它; 后者是在堆上创建一个内容为”a”的字符串对象。
(2) String str=”aaa”; //于栈上分配内存 ;String str=new String(“aaa”); //于堆上分配内存
null与空字符串区别
null与空字符串主要区别如下:
1,null不指向任何对象,相当于没有任何值;而“”代表一个长度为0的字符串
2,null不分配内存空间;而“”会分配内存空间
例如:
string str = null;//定义可空类型变量
str = str ?? “”;//使用合并运算符
Console.WriteLine(str); //1000
Console.ReadLine();
结果是 :“”(控制台输出为空)
注:
(1)单问号? 可用于对int,double,bool等无法直接赋值为null的数据类型进行null的赋值
(2)双问号?? null合并运算符,如果此运算符的左操作数不为 null,则此运算符将返回左操作数(左边表达式);否则当左操作数为 null,返回右操作数(右边表达式)
null和空字符的区别:
1、NULL:代表声明了一个空对象,不是一个字符串,可以赋给任何对象。
空字符:代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。
2、String s=null; 只是定义了一个句柄,即你有了个引用,但是这个引用未指向任何内存空间。
String s=”“; 这个引用已经指向了一块是空字符串的内存空间,是一个实际的东东了,所以可以对它操作。
String s=”a”和String s=new String(“a”);是有本质上的区别的 :
(1) 前者是在字符串池里写入一个字符’a’,然后用s指向它; 后者是在堆上创建一个内容为”a”的字符串对象。
(2) String str=”aaa”; //于栈上分配内存 ;String str=new String(“aaa”); //于堆上分配内存
本文标签: null与空字符串区别
版权声明:本文标题:null与空字符串区别 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/IT/1694658233a254632.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论