我是终于理解了啊。。关于课堂作业的S3 == S4的问题

来源:2-2 Java 中字符串的不变性

cicineer

2016-01-19 09:09

前面都没有什么说的,主要是觉得S3和S4的内存地址为什么不等没有理解。现在我就说说我的理解,当然最开始还是要先理解常量池和堆内存到底是怎么回事。。


看字面意思,我始终觉得S3和S4不是都存的两个常量么,结果突然醒悟,tm的,原来S1是一个变量,当然最终是要把S3和S4的内存地址不同了。。


普及一下S1是将字符串存在常量池中,所以它的地址是常量池给的。同样S2也是常量池给的地址,地址都是字符串常量"imooc"的地址,所以s1和s2的地址是一样的。。

然而s3是一个常量加上一个变量,因此是存在堆内存中,这个地址是堆内存新给s3的。

同理,s4的地址也是堆内存给他的。。因此s3和s4的内存地址是不一样的

写回答 关注

1回答

  • konglq
    2016-01-19 09:48:34

    理解比较透彻,赞一个

    qq_随想之...

    不太理解为什么s3 s4 存放在堆内存中

    2016-07-24 20:34:57

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题