""是一个长度为0且占内存的空字符串,在内存中分配一个空间,可以使用Object对象中的方法。例如:"".toString()等。

  null是空引用,表示一个对象的值,没有分配内存,调用null的字符串的方法会抛出空指针异常。例如如下代码:

  

String str = null;
System.out.println(str.length());

  new String()创建一个字符串对象的默认值为""。String类型成员变量的初始值为null。

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

if(str.length()==0)

  或

if(str.equlas(""))

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

if(str == null)

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

if(str!=null&&str.length()!=0)

  注意:首先要检查str不为null。如果在一个null值上调用方法,会出现错误。

String str1 = new String();
    String str2 = null;
    String str3 = "";
    System.out.println(str3.length()); // 空字符串""的长度为0
    System.out.println(str2.length()); // 抛出空指针异常
    System.out.println(str1); // 输出""
    System.out.println(str1 == str2); // 内存地址的比较,返回false
    System.out.println(str1.equals(str2)); // 值的比较,返回false
    System.out.println(str2 == str3); // 内存地址的比较,返回false
    System.out.println(str3.equals(str2)); // 值的比较,返回false
    System.out.println(str1 == str3); // 内存地址的比较,返回false
    System.out.println(str1.equals(str3)); // 值的比较,返回true

  

 

King@_@