A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© belowfox 中级黑马   /  2016-8-2 14:43  /  782 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[AppleScript] 纯文本查看 复制代码
String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);

9 个回复

倒序浏览
==判断的是地址值,str1和str2两个对象引用的地址值不相同,所以是false。用equals(Object obj)方法可以比较对象的内容是否相同
回复 使用道具 举报
地址值不一样,用equals方法
回复 使用道具 举报
实际上,这个题的结果是 true 还是 false 是不确定的。
题目应该声明的更严谨一些,如:在 Oracle Java7 JVM 上运行下面代码会输出什么。
回复 使用道具 举报
这是对象的比较对吧,两个对象的地址值不一样啊 ,所以肯定是false。还有一个可能String s="abc";String s1="abc“; 这个s==s1就是true,因为一开始会在常量池里面创建s,之后s1发现常量池已经有了所以就不创建,就是一个地址值
回复 使用道具 举报
str1是一个地址,str2又是new出来的,又是一个地址,两个地址是不一样滴!
回复 使用道具 举报
两个地址值不同,所以是false~
回复 使用道具 举报
因为+底层是用StringBuffer或者StringBuilder做的,第一个在常量池,第二个在堆内存
回复 使用道具 举报
因为+底层是用StringBuffer或者StringBuilder做的,第一个在常量池,第二个在堆内存
回复 使用道具 举报
== 号 比较的是地址和内容 str2 是另一个对象 地址值不同
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马