每次操作数据库,都会遇到NULL和''的拦路虎,由于筛选条件模糊导致查询结果错误。
String str1 = null; str引用为空
String str2 = ""; str引用一个空串
null没有分配内存空间,""分配了空间,因此str1还不是一个实例化的对象,而str2已经实例化。
注意因为null不是对象,""是对象。NULL的确切意思是 "未知" 而不是 "空",所以比较的时候必须是 if(str1==null){...}和if(str2.equals("")){...}。
对象用equals比较,null用等号比较。因此,如果str1=null;
C#判断字符串采用string.IsNullOrEmpty()判断
空 (NULL) 值表示数值未知。空值不同于空白或零值。没有两个相等的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。
在写入数据的时候,空字符串'' 也是一个确定的值,所以就算你定义了 NOT NULL 也可以被写入。
就比如:
1、NULL是处女,''是非处女,但目前单身
2、NULL跟空值的区别,基本上就是0跟“没有”的区别。
3、NULL是真空,而''是空气,二者的外在表现是一样的,都看不到