String 类型有点头痛,为什么输出false?

String s1=“a”;

String s2=s1+"b";

System.out.println(s2=="ab");

旧时光的稻草
浏览 1516回答 2
2回答

高恒博

==是比较对象的引用位置,String s1=“a”;String s2=s1+"b";你这两句实际创建了两个对象(基本数据类型只创建一个),输出true的话,建议equal方法

小城阿哥

1. String s1="a"; String s2=s1+"b"; System.out.println(s2=="ab");  //输入 false 2. String s2="a"+"b"; System.out.println(s2=="ab");   //输出为true首先要知道  ==是计较 是否是同一个对象   在 1 中  涉及到变量运算    得到字符串对象会保存在各自的内存中,不会在缓冲池中查找,所以==两边指向不同对象    2 中不涉及变量   则==指向同一个对象  
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java