比较两个字符串是否相同

      今天期末考试看到一个题,发现了以前自己对于 == 和equals的认识还是有一定的不足,下面是这道题

public class A {
	public static void main(String[] args) {
		String s1 = "shuangti";
		String s2 = "shuang" + "ti";
		boolean b1 = s1.equals(s2);
		boolean b2 = s1 ==s2;
		System.out.println(b1 + " " + b2);
	}
}

        我以前的想法是equals比较的是两个字符串的数值,==比较的是两个字符串的地址.所以我以为是true false,但是最终结果是true true。后来查阅资料才知道当==先去查找常量池中是否有“shuangti”这个字符串,如果有就不生成新的,没有的话就生成新的。所以最后得到还是一样的。

猜你喜欢

转载自blog.csdn.net/qq_41939384/article/details/80890759
今日推荐