Java题目,为何输出是 false true false true

publicstaticvoidmain(String[]args){Stringa="aa";Stringb=newString("aa");System.out.pr... public static void main(String[] args) {

String a = "aa";
String b = new String("aa");
System.out.println(a==b);
System.out.println(a.equals(b));

String c = new String("aa");
System.out.println(a==c);
System.out.println(b.equals(c));
展开
 我来答
双四别阴我
推荐于2016-09-05 · TA获得超过2282个赞
知道大有可为答主
回答量:1250
采纳率:57%
帮助的人:1190万
展开全部
这个很简单了。
你要了解两个String类型的字符串使用==号比较和使用equals比较的区别。
==比较是String对象的地址,显示a、b、c都是三个不同的对象,指向的不是同一个地址,都是通过new来实例化的。所以a==b 、a==c都是false。
equals是比较字符串实际的值,a、b、c的值都为"aa",所以是true。

话说回来,如果b实例化的时候是b=a,那么第一个就会是true了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式