java中String与空值那些不得不提的事...

String 的初始值

当 String 作为类变量时,不管有没有加 static 前缀,其初始值都是 null

当 String 作为方法中的变量时,如果没有赋初始值,在做变量方法调用判定空的时候,运行前就直接被检测出错误,显示需要赋初值

isEmpty() 判空

用来判定字符串是否为空的方法,当然这个空值得是不为 null 的空"",如下

String str = "";
System.out.println(str.isEmpty());

最后返回的是 true,如果 str 没有赋初值则在运行前就会报错,如果 str 赋初值 null 则在运行时,调用isEmpty()会抛出空指针异常

与 null 比较判空

String 在作为类变量时候不手动给其赋值,其初始值为 null,null 表示还未给其分配一个空间,而""表示已经开辟了一份空间了

String str = null;
System.out.println(str==null);

最后输出结果是 true,如果这个 null 的 str 去调用 String 类中的一些方法也会一起空指针异常

equals("") 判空

除了使用isEmpty(),使用equals("")也可以达到同样判定""的效果

String str = "";
System.out.println(str.equals(""));

结果返回 true

(String)null

这种写法其实我之前没有用过,我是看了 jedis 的源码发现在创建 redis 连接池的时候如果不传密码,密码会通过 (String)null 的方式传递

扫描二维码关注公众号,回复: 11540016 查看本文章

经过我自己的尝试发现,(String)null 实际还是 null 空值,效果上和 null 一模一样,但是还不太清楚为什么源码要 (String)null 这样去写

猜你喜欢

转载自blog.csdn.net/abcnull/article/details/107702833
今日推荐