热门

最新

红包

立Flag

投票

同城

我的

发布
weixin_74938270
张十五耶
3 年前
trueweixin_74938270

String类型不是基本数据类型,但为什么还可以使用“==”进行判断?
作为一个初学者,这里我做出下总结,希望对大家有所帮助。
首先我们要知道,“==”在比较基本数据类型的时候是直接比较数值,在比较引用数据类型的时候是比较地址值;其次,我们还要明白,String是属于引用数据类型。
若像这样:String str1="abc";则创建了个地址值,但是再这样:String str2="abc";便不会再创建新的地址值了,而是复用这个地址值。
这是因为,在使用String类的时候,堆内存会有个StringTable串池,当使用双引号直接赋值的时候,系统会检测所赋值的字符串在串池中是否存在。若不存在,就创建新的地址值,反之,则复用该地址值。那地址值既然一样,比较自然一样了,结果为true。
但如果这样呢?
String str3=new String("abc");
String str4=new String("abc");
其实判断很简单,每new一次,就会创建新的地址值,两地址值不相同,用“==”判断结果自然为false。

每日学习打卡
CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
继续加油
立即登录