黑马程序员技术交流社区

标题: 分析写结果 [打印本页]

作者: 繁华落幕    时间: 2015-6-18 21:47
标题: 分析写结果
本帖最后由 繁华落幕 于 2015-6-24 22:20 编辑

看程序,分析写结果
                        String s7 = "hello";
                        String s8 = "world";
                        String s9 = "helloworld";
                        System.out.println(s9==s7+s8);           
                        System.out.println(s9=="hello"+"world");



作者: hufu4635    时间: 2015-6-18 23:19
本帖最后由 hufu4635 于 2015-6-18 23:21 编辑

1.System.out.println(s9==s7+s8)//falses7+s8是字符串对象在内存中的地址值相加,所以false
2.System.out.println(s9=="hello"+"world"); /true

这个先会进行拼接字符串常量,然后获取这个字符串常量在常量池中的地址值,这个地址值和s9的是相同的

作者: 繁华落幕    时间: 2015-6-19 11:45
hufu4635 发表于 2015-6-18 23:19
1.System.out.println(s9==s7+s8)//falses7+s8是字符串对象在内存中的地址值相加,所以false
2.System.out ...

谢谢   就是第一个没绕明白
作者: 洪伟    时间: 2015-6-19 12:38
false 内存地址不同;true 原理不清楚
作者: yaoxufanalan    时间: 2015-6-19 13:02
看不懂,解释下
作者: wenxueaaa555    时间: 2015-6-19 13:22
应该是false,true




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2