空串、null串和isEmpty方法

空串

  空串""是长度为0的字符串。可以调用以下代码检查字符串是否为空:

if(str.length() == 0)
或
if(str.equals(""))

  空串是一个java对象,有自己的串长度(0)和内容(空)。

null

  不过,String变量还可以存放一个特殊的值,名为null,这表示目前没有任何对象与该变量关联。要检查一个字符串是否为null,要使用以下条件:

if(str ==null)

  有时要检查一下字符串既不是null也不为空串,这种情况下就需要使用以下条件:

if(str != null && str.length() != 0)
或
if(str != null && "".equals(str))

  注意:s != null的顺序必须出现在前面,不然会抛出java.lang.NullPointerException.即空指针异常。

isEmpty()

  分配了内存空间,值为空,是绝对的空,是一种有值(值 = 空)

""

  分配了内存空间,值为空字符串,是相对的空,是一种有值(值 = 空字符串)

null

  是未分配内存空间,无值,是一种无值(值不存在)

isEmpty的源码如下:

  就是说只要String的文本数量为0就返回true,而""里面文本数量就是为0。

""null的区别可以比喻为:

  你要喝水,str != null 用于判断是不是连水杯都没有,str.length() != 0或str.isEmpty()是用于判断水杯里面有没有水。

原文地址:https://www.cnblogs.com/codingmengmeng/p/9984970.html