cicineer
2016-01-19 09:09
前面都没有什么说的,主要是觉得S3和S4的内存地址为什么不等没有理解。现在我就说说我的理解,当然最开始还是要先理解常量池和堆内存到底是怎么回事。。
看字面意思,我始终觉得S3和S4不是都存的两个常量么,结果突然醒悟,tm的,原来S1是一个变量,当然最终是要把S3和S4的内存地址不同了。。
普及一下S1是将字符串存在常量池中,所以它的地址是常量池给的。同样S2也是常量池给的地址,地址都是字符串常量"imooc"的地址,所以s1和s2的地址是一样的。。
然而s3是一个常量加上一个变量,因此是存在堆内存中,这个地址是堆内存新给s3的。
同理,s4的地址也是堆内存给他的。。因此s3和s4的内存地址是不一样的
理解比较透彻,赞一个
Java入门第三季
409792 学习 · 4340 问题
相似问题