equals()与“==”的联系与区别

/*
 * 解释:
相同点:

都可以做比较;返回值均是布尔型boolean

不同点:

* ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值

* equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,比较的是地址值;重写后的equals方法比较的是对象中的属性


 */

例题:

定义两个String类型的变量,str和str1,如下
String str = new String(“hello”);
String str1 = “hello”;
分别用==和equals比较这str和str1是否相等,并打印出来,并加注释说明相等和不相等的原因。

public class Test4 {

	public static void main(String[] args) {
		String str = new String("hello");
		String str1 = "hello";
		if(str == str1)
			System.out.println("相等");
		else 
			System.out.println("不等于");
		if(str.equals(str1))
			System.out.println("相等");
		else 
			System.out.println("不等于");

	}

}

 结果:


版权声明:本文为dianmomanxue原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。