• Java 空字符串和 字符串为null的区别


      之前一直没有搞清楚 字符串为空和字符串为null的区别,今天写代码一直出现NullPointerException异常,我一直没有搞清楚,后来发现我是这样写的

    String s = null;
    s = xxx.getString();
    if (!s.isEmpty() && s != null) {
    System.out.println("ok");
    } 

     我看了半天也没有看懂(拒绝嘲讽)。 所以我看着别人的博文,写一篇作笔记

    1. 不同之处

      null表示一个字符串对象的引用为空,String a=null;  声明了一个字符串变量a,变量a的引用为空。所以a没有指向任何的内存空间,在堆中也没有开辟任何的空间

      空字符串表示一个字符串对象引用的值为空,String a =“”  声明了一个字符串变量a,变量a的值为空。而a指向了空字符串的内存空间。

    2. 判断字符串为空的方法

      (1) if(s != null && s.equals(""));

      (2) if(s != null && s.length() == 0);

     public int length() {
            return value.length;
        }

      (3) if(s != null && s.isEmpty());   

        Java SE 1.6添加的方法,底层的实现和2差不多。

        实现的方法:

    public boolean isEmpty() {
            return value.length == 0;
        }

      (4)   if (s != null && s == "");

    注:不要和我一样写反了,两个判断逻辑写反了,就可能出现 NullPointerException异常。

  • 相关阅读:
    mysql判断一个字符串是否包含某几个字符
    mysql动态sql 整理多个字段
    mysql 把表中某一列的内容合并为一行
    linux基础
    shell基础
    香港主机Squid+Stunnel代理搭建
    mysql字符串根据指定字符分割
    tomcat项目快速启动设置
    Linux系统内存占用90%以上——解决方法
    redis常用命令
  • 原文地址:https://www.cnblogs.com/Triomphe/p/7450821.html
Copyright © 2020-2023  润新知