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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘长路 中级黑马   /  2012-9-24 16:45  /  2496 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

null与""的区别

评分

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

查看全部评分

11 个回复

倒序浏览
1. string str = null  是不给它分配内存空间;
2. string str = \"\"给它分配长度为空字符串的内存空间;
3. string str = null没有string对象;
4. string str = ""有一个字符串对象。

评分

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

查看全部评分

回复 使用道具 举报
null表示一个空引用,在栈中没有分配对这个字符串的一个引用,而且只能是引用类型的才可以等于null,值类型的不可以等于null;
""表示在栈中有这个字符串的一个引用,只不过这个字符串的内容为空。。

评分

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

查看全部评分

回复 使用道具 举报
對於lz問題,2樓的比較好理解,3樓的解釋對於lz的問題來說太過深奧
回复 使用道具 举报
在数据是未知数或者无法使用时,大多数的数据库管理系统将存储一个叫做Null值的特殊值。不要将它和零(一个合法数值)、零长度串(不含有字符的一种串数据类型)或空格字符混淆起来。SQL-3标准中把一个Null定义为:
“...一个用来指明任何数据值都不存在的一个特殊值...”

SQLServer中有一个空值调用函数:
ISNULL 功能:使用指定的替换值替换 NULL。

语法
ISNULL ( check_expression , replacement_value )

参数
check_expression
将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。
replacement_value
在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。

返回类型
返回与 check_expression 相同的类型。

注释
如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。

一个例子:
使用 ISNULL
下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00。

SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type,
ISNULL(price, 0.00) AS Price
FROM titles

评分

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

查看全部评分

回复 使用道具 举报
NULL是空地址的意思,在使用指针变量时表示一个空地址 ,而""表示字符串的长度为0的字符串。
另外 0可以表示数字0,也可以表示ASCII码值为0的字符 ,这是这三者的区别

评分

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

查看全部评分

回复 使用道具 举报
""----一个指向"\0"的空字符串, 占用一个字节存储空间,因为转义符\0代表字符串结束.s变量可以使用,比如s.Length;
null----一个指不向任何一个存储空间的变量,s不可以使用;
"" ----给它分配长度为空字符串的内存空间;



null----
是不给他分配内存空间。

评分

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

查看全部评分

回复 使用道具 举报
刘欢(安阳) 来自手机 中级黑马 2012-9-25 17:07:32
8#
我理解的比较简单~“”是赋值了一个“空”字符串,内存里是有东西的。null就真是啥也木有赋了。

评分

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

查看全部评分

回复 使用道具 举报
null  不知道
string.empty 就是什么都没有
不知道和 没有 的概念这样就很理解了吧

评分

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

查看全部评分

回复 使用道具 举报
null 不分配内存 ""占内存

评分

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

查看全部评分

回复 使用道具 举报
null是指没有内存空间,对象没有指向任何地址
""是指在内存中分配的有地址,只是地址存储的内容是""罢了

评分

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

查看全部评分

回复 使用道具 举报
1 null 一个用来指明任何数据值都不存在的一个特殊值,是空地址的意思
2 ""表示字符串的长度为0的字符串
3 还有0 表示数字0,也可以表示ASCII码值为0的字符

评分

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

查看全部评分

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