About toString()

welcomyou 2003-04-08 01:33:57
fragment1
String a="100";
String b="100";
a==b 是true

fragment2
Byte a=new Byte("100");
a.toString()==a.toString 结果却是false,为什么?
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gengpipi 2003-04-08
  • 打赏
  • 举报
回复
String a = "hehe";
String b = "hehe";
此时"hehe"对象在stringpool的一块内存中 这里相同内容的String 对象都是一个对象
所以a,b引用指的是相同的一个对象(存储空间一样)
如果 用new String("hehe");的话此对象存储在堆中
container 2003-04-08
  • 打赏
  • 举报
回复
你开始的时候声明的a和b是相同的,它俩指向了同一个地址空间。
但是a.toString()方法得到的是一个新的String,也就是它在堆中创建了新的对象,而a.toString()得到的只是指向这个新的对象的地址。左边和右边的两个对象地址不同,所以==一点是false。
你可以用a.toString().equal(a.toString)

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧