JAVA中isEmptynull""的区别

Posted aaronrhythm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中isEmptynull""的区别相关的知识,希望对你有一定的参考价值。

isEmpty()
        分配了内存空间,值为空,是绝对的空,是一种有值(值 = 空)  
 ""
        分配了内存空间,值为空字符串,是相对的空,是一种有值(值 = 空字串)  
 null
        是未分配内存空间,无值,是一种无值(值不存在)

 

得出的结论:

isEmpty()

  1.如果不分配内存空间,不能用isEmpty(),否则报空指针异常

  2.isEmpty()不能分辨出值是空还是空字符串

null

  1.null只能分辨出值是否不分配内存空间

“”

  1.不管值是否分配内存空间都不会报错

例:

public class Test 
    public static void main(String[] args) 
        //分配内存空间,值为空
        String a = new String();
        //分配内存空间,值为空字符串
        String b = "";
        //未分配内存空间
        String c = null;

        if (a != null) 
            System.out.println("a值存在");
        
        if (b != null) 
            System.out.println("b值存在");
        
        if (c == null) 
            System.out.println("c值不存在");
        
        if (a == "") 
            System.out.println("a值存在,为空字符串");
        
        if (b == "") 
            System.out.println("b值存在,为空字符串");
        
        //dead code
        if (c == "") 
            System.out.println("c值存在,为空字符串");
        
        if (a.isEmpty()) 
            System.out.println("a值存在,为空字符串或者为空");
        
        if (b.isEmpty()) 
            System.out.println("b值存在,为空字符串或者为空");
        
        // Null pointer access: The variable c can only be null at this location
//        if (c.isEmpty()) 
//            System.out.println("String c=null");
//        
    

结果:

1 a值存在
2 b值存在
3 c值不存在
4 b值存在,为空字符串
5 a值存在,为空字符串或者为空
6 b值存在,为空字符串或者为空

 

以上是关于JAVA中isEmptynull""的区别的主要内容,如果未能解决你的问题,请参考以下文章

java中怎么遍历jsonarray

Java循环中删除一个列表元素

java中前台怎么把数据传给后台

java中怎么去掉不必要的.0?

关于js中"window.location.href""location.href""parent.location.href"&qu

Java实现JSON多层遍历