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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

string str = null 和 string str = “”不都是存一直空值的字符串么 为什么有两种写法?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
一个是什么都没有,一个是空字符串
string str=null 把这个引用指向了一个null,没有地址没有值的地方。
string str="" 把这个引用指向了一个地址,地址里面存的是空的字符。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
null表示什么都没有 ,不会为其分配存储空间;而“”则表示会分配一个“”字符串的指针

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
null是什么都没有。后面那个是一个空字符串

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
string 是引用类型,引用类型的存储分为两部分
1) 引用
2) 实际数据

string str =  null;     <------>    只有第一部分:一个引用。            【引用为空】
string str = "";           <------>    不但有第一部分:一个引用;而且有第二部分:实际值就是 "" 。  【串值为空】

至于 "" 是什么,你可以这样理解:字符串 "" 就相当于温度  0℃ 。
0℃不表示没有温度,而表示温度的值为0  (小学老师总是拿这个考验我{:soso_e141:})

同理,所有的引用类型都是这样的,null表示没有实际数据。

如果引用类型(包括string)为null的话,没有实际数据的话,不能调用它的任何方法。


评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
其实很好理解的 null你就理解为 不知道
而""就是个空字符串
后面还会有undifind (好像是这么写的 ) 是没有找到

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马