String 的null,或者赋值为"",有什么区别?
废话少说,上代码:
public class EmptyAndNull { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String str=new String(); String str1=""; String str2=null; if(str.isEmpty()){ System.out.println("str is empty."); } if(str!=null){ System.out.println("str is not null"); } if(str1.isEmpty()){ System.out.println("str1 is empty."); } if(null!=str1){ System.out.println("str1 is not null"); } } }
输出结果:
str is empty.
str is not null
str1 is empty.
str1 is not null
结论:new String();创建的对象并不为空,系统是分配了内存空间的,只是它没有赋值;String str="";str也不为空,只是赋值为空的字符串;String str=null;str为空,没有内存空间,什么也没有,不能调用它的属性,会有异常抛出。