java中空字符串、null的区别

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为空,没有内存空间,什么也没有,不能调用它的属性,会有异常抛出。

原文地址:https://www.cnblogs.com/nannanITeye/p/3376530.html