首先说明一下
if(a = null || a.length() = 0)语法是错误的应为
if( a == null || a.length() == 0)String a = "";
定义的a不为null而a.length()的值为0
if(a = null || a.length() = 0)语法是错误的应为
if( a == null || a.length() == 0)String a = "";
定义的a不为null而a.length()的值为0
假设a为String,意思a没有指向任何一个字符串
此时调用a.length()会报错,因为a不是对象,所以没有方法可以调用a.length() == 0 假设a为String,那么意思是a是一个指向字符串的句柄
但该字符串是一个没有包含任何字符的空字符串
此时不报错,因为a是一个对象,只不过对象长度可能为0String a = "" 将名为a的句柄指向一个字符串对象
但该字符串对象是一个没有包含任何字符的空字符串
隐含意义:这个空字符串是在字符串池内的,String b = "",则a、b将指向同一对象,而不是两个不同的空字符串(这句不懂的话,看think in java)
null,代表什么都没有,这里Variable a 不过是一个申明而已,不具String 实体
而a.length(),获得字符串a的长度,这里a必须已经具备了实体,即a != null需要注意的是
String a = "" 与 String a = null 是完全两个不同的概念...HOHO~~~
@.@||~
String a = null;
等价于
String a;这时的a并没有指向一个实际的String对象, 而是说, a是用来指向String类的对象的.而 String a = ""; 这时a已经指向一个String对象了.