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

本文详细解析了Java中String类型的判空方法,包括初始值、isEmpty()、与null比较及equals()的不同应用场景和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 的方式传递

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcnull

您的打赏是我创作的动力之一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值