概述
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与空字符串区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复