叶飘零、 2021-11-17 14:58 采纳率: 100%
浏览 39
已结题

关于String进行运算后,地址值在内存中变化的问题

今天学习了String在内存中创建的问题
1、如果用字面量的方式定义String,其地址值直接指向常量池 例如:String test1 = "bot";
2、如果用创建对象的方式定义String,其地址值指向堆空间,堆空间的value数组的地址值再指向常量池 例如:String test2 = “bot”;
3、同一个常量在常量池中只会存在一个

基于上面学习到的三个概念得到的结果,上面1和2中举例的test1和test2最终都指向的是常量池中的同一个bot

但是如下代码让我感觉结果与学习到的定义有矛盾

    String test1 = "bot";
    String test2 = "bo";
    test2 += "t";
    System.out.println(test1 == test2);//结果返回为false

我想不明白为什么结果会返回false,按理说两个test都是字面量定义,当test2加了个t时,我理解系统应该按照第三条定义去常量池里寻找有没有一样的字符串,如果有就直接把地址值指向它,那么结果应该返回为true的,为什么会返回FALSE,是我对哪个定义理解错了吗

  • 写回答

3条回答 默认 最新

  • zcl_1991 2021-11-17 15:09
    关注

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日
  • 创建了问题 11月17日

悬赏问题

  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上