对于正在学习java的,以及入行不久的小伙伴们,在面试中经常会被面试官问到 " == 和 equals() 的区别 ?"的问题,你是否回答好了呢?
示例一:
//两个基本类型数据比较 int a = 10; int b = 10; System.out.println(a == b);
答案:true
示例二:
//两个字符串的比较 String x = "hello"; String y = "hello"; System.out.println(x == y); System.out.println(x.equals(y));
答案:true
true
示例三:
//两个不同字符串的比较 String x = "hello"; String y = "world"; System.out.println(x == y); System.out.println(x.equals(y));
答案:false
false
示例四:
//两个字符串的比较 String x = "hello"; String y = " world"; String z = new String("hello world"); System.out.println((x+y) == z);
答案:false
示例五:
//两个字符串的比较 String x = "hello"; String y = " world"; String z = new String("hello world"); System.out.println(x+y); System.out.println(z); System.out.println((x+y).equals(z));
答案:hello world
hello world
true
小结:基本类型数据用 ==比较,对于字符串类型的数据,如果出现new关键字,必然会在堆内存中开屏空间,那么用 == 去比较的两个引用类型数据的地址,显然得出的结果是false,因此如果比较两个字符串的内容是否相等,用的是equals()方法。