首先说明一下
if(a = null || a.length() = 0)语法是错误的应为
if( a == null || a.length() == 0)String a = "";
定义的a不为null而a.length()的值为0

解决方案 »

  1.   

    a == null   a是没有指向任何对象的句柄(类似与一个空的指针)
    假设a为String,意思a没有指向任何一个字符串
    此时调用a.length()会报错,因为a不是对象,所以没有方法可以调用a.length() == 0   假设a为String,那么意思是a是一个指向字符串的句柄
    但该字符串是一个没有包含任何字符的空字符串
    此时不报错,因为a是一个对象,只不过对象长度可能为0String a = ""   将名为a的句柄指向一个字符串对象
    但该字符串对象是一个没有包含任何字符的空字符串
    隐含意义:这个空字符串是在字符串池内的,String b = "",则a、b将指向同一对象,而不是两个不同的空字符串(这句不懂的话,看think in java)
      

  2.   

    String a = null
    null,代表什么都没有,这里Variable a 不过是一个申明而已,不具String 实体
    而a.length(),获得字符串a的长度,这里a必须已经具备了实体,即a != null需要注意的是
    String a = "" 与 String a = null 是完全两个不同的概念...HOHO~~~
    @.@||~
      

  3.   

    如果是声明成员变量,那么
    String a = null; 
    等价于
    String a;这时的a并没有指向一个实际的String对象, 而是说, a是用来指向String类的对象的.而 String a = ""; 这时a已经指向一个String对象了.