课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > java程序员:isEmpty与null、""的区别
  • java程序员:isEmpty与null、""的区别

    发布:昆明Java培训      来源:达内新闻      时间:2016-10-07

  • 前一段时间昆明Java培训机构的老师在阅读别人的代码,发现有的时候用isEmpty,有的时候用null,有的时候用""。我很困惑三者之间的区别,于是昆明Java培训机构的老师就自己写了一个程序来验证一下。

    1 public class Test {

    2    public static void main(String[] args) {

    3        //分配内存空间,值为空

    4        String a = new String();

    5        //分配内存空间,值为空字符串

    6        String b = "";

    7        //未分配内存空间

    8        String c = null;

    9

    10        if (a != null) {

    11            System.out.println("a值存在");

    12        }

    13        if (b != null) {

    14            System.out.println("b值存在");

    15        }

    16        if (c == null) {

    17            System.out.println("c值不存在");

    18        }

    19        if (a == "") {

    20            System.out.println("a值存在,为空字符串");

    21        }

    22        if (b == "") {

    23            System.out.println("b值存在,为空字符串");

    24        }

    25        //dead code

    26        if (c == "") {

    27            System.out.println("c值存在,为空字符串");

    28        }

    29        if (a.isEmpty()) {

    30            System.out.println("a值存在,为空字符串或者为空");

    31        }

    32        if (b.isEmpty()) {

    33            System.out.println("b值存在,为空字符串或者为空");

    34        }

    35        // Null pointer access: The variable c can only be null at this location

    36 //       if (c.isEmpty()) {

    37 //           System.out.println("String c=null");

    38 //       }

    39    }

    40

    41 }

    运行的结果如下

    1 a值存在

    2 b值存在

    3 c值不存在

    4 b值存在,为空字符串

    5 a值存在,为空字符串或者为空

    6 b值存在,为空字符串或者为空

    得出的结论:

    isEmpty()

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

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

    null

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

    “”

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

    昆明Java培训选昆明达内Java培训机构,了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

    推荐文章

上一篇:静态方法中使用synchronized关键字制造同步块

下一篇:Java中常用的三种排序算法

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56