2 qq 34081063 qq_34081063 于 2016.03.10 13:01 提问

String字符串,求大神帮解答下

String s9 = "hello"+"world";
String s10 = "helloworld";
System.out.println(s9==s10);
String s11 = s4+"world";

    System.out.println(s10==s11);

    s10与s11不同的原理是什么??

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.10 14:07

s4在哪里定义的。如果s4不是在程序编译的时候确定的,那么它不在常量池中,不是一个对象引用,所以==返回false。要比较字符串字面值,应该用equals

u013772876
u013772876   2016.03.10 15:01

你问的完整代码应该是这样的吗?

String s9 = "hello"+"world";
String s10 = "helloworld";
System.out.println(s9==s10);
String s11 = s4+"world";
System.out.println(s11==s10);

==:是用来判断两个对象的地址是否相同,即是否是指相同一个对象。

u013772876
u013772876 String s4 = "hello"
接近 2 年之前 回复
lx624909677
lx624909677   Ds   Rxr 2016.03.10 23:05

==是双目运算符,结果是一个bool值

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!