源代码:
@Test
public void test() {
scanner = new Scanner(System.in);
System.err.println("请输入str1");
String str1 = scanner.nextLine();
System.err.println("请输入str2");
String str2 = scanner.nextLine();
System.err.println("str1 == str2 :" + (str1 == str2));
System.err.println("str1 equals str2 :" + (str1.equals(str2)));
}
执行结果:
请输入str1
abc
请输入str2
abc
str1 == str2 :false
str1 equals str2 :true
之前字符串的比较都是用的equals ,听你说jdk优化了== 所以想测试一下,发现我的执行结果和你的并不一样,哈哈,果然薛定谔的Tomcat。
展开
作者回复: 其实不是jdk优化了==,而是jdk尽力优化了String对象的创建,减少重复创建相同的对象。Integer这些也是一样的