区别大了。
name==null 是判断name有没有内存空间。
"".equals(name) 是判断name的内存空间中的值是不是空字符串。
没有内存空间的话是不能对变量或对象进行操作的。会出异常。
null主要是数据库中存在的没有值的内容,表示这个值没有定义(没有分配内存空间)但不等于空,""则表示有记录,记录为空。
name==null 与 "".equals(name)的区别就是name==null表示name这个变量没有定义的空值,"".equals(name)表示与空值作比较
String name = null,String类的默认值是null,而你一但将name初始化,那么它就有了对应的非null值。name=""是将一个empty值赋给name,empty是一个非null的空值.null的字符串指针不指向任何位置。
name==null 与 "".equals(name)会返回一个false值。
== 只有当两个 变量指向同一个对象时,才为真,即比较的是 地址;
equals 只要2者的值相等就为真,即比较的是 值;
如果一个变量==Null这样比较,是判断 它有没有真的指向一个内存空间,即对象;
而 equals 一个空字符,是判断存储空间里的对象是不是个空字符串,如果还没有分配内存空间,则会出现错误;
String name==null;//是空引用
String name="";//这是个空字符串
String name="";这个在堆上分配了储存空间.你可以调用String的所有方法.
第一个只是空引用.不能在第一个上调用String的任何方法.因为他是一个空引用.空字符串也是串.