字符串null和“ ”两种状态

由于对字符串为null和为“ ”两种状态理解理解很模糊,导致在写代码的时候一直报错,而且有点摸不着头脑,有些函数的参数是不能够为null的,因此如果获取到的值为null时会报错。但是有的情况又需要判断字符串的值是否为“ ”,如果对两者区分不准确必然会出现逻辑上的错误,于是自己参考别人的博客,希望自己以后不再犯类似的错误。

字符串为null和被赋值为“ ”时两种不同的状态。

比如String str = null;---------(1)

        String str1 = "";---------(2)

(1)中栈里边会存在str,但是对里边没有对应的值,但是(2)中,栈中会存在str1,堆中也会存放对应的值""(空字符串);

<变量的声明会存放在栈中,变量对应的值会存放在堆内存中> <我们还可以联想到JVM相关的知识,比如垃圾回收机制等等>

(2)上边的赋值(1)中,因为str为null,因而不能够调用String的任何方法会报NullPointerException,而赋值语句(2)中的str1则可以调用String类的任何方法,不会报错。

<自己可以编写String的equals方法和==在使用过程中需要注意的地方>

随笔记下来,以后在使用过程中慢慢体会,对它的掌握更牢固一些。特别感谢前人的博客,大家共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值