十人九错的题,不信大家来试试!!

gjl_gjl 2009-03-01 09:41:48
加精

String a = "ab";
String b = "a" + "b";
System.out.println(a==b);
true or false?

大家可以在自己的机子上试一下,看一下结果,并主意自己用的JDK是哪个版本的?可以发结果上来大家一起探讨!!
...全文
17150 1038 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1038 条回复
切换为时间正序
请发表友善的回复…
发表回复
ihito 2011-09-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 flamingsky007 的回复:]
引用 4 楼 rypgood 的回复:
Java codeString a="abc";
String b="ab";
String c=b+"c";
System.out.println(a==c);trueorfalse?

上面写错了


这个有意思 我把b和c都输出了 结果都是abc
可答案是false
有意思
[/Quote]
用equals就是true了吧

guoqizhou 2011-09-11
  • 打赏
  • 举报
回复
true
可以从这得到答案
http://topic.csdn.net/u/20081123/12/f70f1632-24be-4caa-bc20-29cf8267afab.html?90303
uncle_bacon 2011-09-08
  • 打赏
  • 举报
回复
Java code

String a = "abc";
String b="ab";
String c=b+"c";
System.out.println(a==c);
true or false?



public class test1 {


public static void main(String[] args) {
String a="ab";
String b="a"+"b";
String f=b;
System.out.println("a==b is "+(a==b));
System.out.println("a==f is "+(a==f));
String c="abc";
String d="ab";
String e=d+"c";
System.out.println("c==d is "+(c==d));
System.out.println("c.equals(e) is "+(c.equals(e)));
}

}
S_enjoin 2011-09-07
  • 打赏
  • 举报
回复
学习.......
fireforest 2011-08-11
  • 打赏
  • 举报
回复
学习了
不懂老师 2011-08-11
  • 打赏
  • 举报
回复
找到一个地址。觉得讲的不错!http://blog.csdn.net/songshuxing/article/details/2786565
不懂老师 2011-08-11
  • 打赏
  • 举报
回复
新手学习中!受教中!
AslenG 2011-08-09
  • 打赏
  • 举报
回复
true是肯定的,自从我搞懂了==和equals()后,这种问题就万变不离其中了。==比较地址,只要不是重新实例化的字符串对象,其值都是取保存在字符串常量池中的值的。因为引用的是同一个地址所以结果返回当然是true了嘻嘻!so easy!
tanguolovepig 2011-08-06
  • 打赏
  • 举报
回复
true
zhang344283566 2011-08-05
  • 打赏
  • 举报
回复
这个肯定是true,如果String是通过new出来的,那就不是true了。
不通过new产生的两个str是在栈空间里面,指向的堆内存是同一块地方,所以相等;
而new出来的完全是两个不同的对象,不会指向同一个地方。所以也不会相等。
我家有条鱼 2011-08-03
  • 打赏
  • 举报
回复
false
qq477959116 2011-06-29
  • 打赏
  • 举报
回复
字符串 不是用 equals 比较么
yesenfei 2011-06-28
  • 打赏
  • 举报
回复
所以答案是TRUE
yesenfei 2011-06-28
  • 打赏
  • 举报
回复
应该不用运行吧?今天刚看书看到,多个string变量是指向同一个string对象的
wang_huanming 2011-05-01
  • 打赏
  • 举报
回复
我认为这种问题没什么太多的意义,实际工作中,谁又会用==来判断2个字符串是不是相等啊
FullStackTestClub 2011-04-30
  • 打赏
  • 举报
回复
这就是字符串池的问题呀
chzhm159 2011-04-30
  • 打赏
  • 举报
回复
感觉还是没讲透,等我查查找个最透彻的答案
小绵羊 2011-04-19
  • 打赏
  • 举报
回复
[Quote=引用 95 楼 xiangjie123 的回复:]

String类是一个很特殊的类,当对其进行赋值的时候,他就会重新实例化一个对象,所以,即使输出的内容一样,当时其实两个不同的对象,所以为FALSE
[/Quote]

+1
gaha110 2011-04-19
  • 打赏
  • 举报
回复
是false 他是比较两边的对象是否为同一个对象
xiongyuanming 2011-04-19
  • 打赏
  • 举报
回复
无语 又来这种
加载更多回复(991)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧