Java中==与equals的区别

一、==是逻辑运算符

==是逻辑运算符,用于比较两个变量里的数值是否相等。

 

二、equals方法是根对象Object里的方法,用于判断两个对象是否相等。

所有的对象都默认继承Object对象。

源码为:

    public boolean equals(Object obj) {
        return (this == obj);
    }

三、理解变量里的存储值

1.当变量为基本数据类型时,变量的存储值就是基本数据类型的值。

int x=10; x变量的存储值就是10

2.当变量为引用类型时,如对象、数组、接口等,变量的存储值为地址。即引用对象的地址。

Object x = new Object(); x变量里存储的是新建Object对象的地址。

 

所以,对于基本数据类型使用==即可判断是否相等。对于引用类型,如果使用==判断,则比较的是对象地址是否相等。

示例:

public class Test extends Object{
	public static void main(String[] args) {
		String x = new String("abc");
		String y = new String("abc");
		
		//引用类型:比较值(值为地址)
		System.out.println("x==y "+(x==y));
		//比较内容:String类重写了equals方法
		System.out.println("x.equals(y) "+x.equals(y));
		
		int a=10;
		float b=10.0f;
		//基本数据类型:比较值(值为10)
		System.out.println("a==b "+(a==b));
	}
}

输出:

x==y false
x.equals(y) true
true

String类的equals方法重写了Object类的equals方法,内容为比较字串符的内容。 

如若转载,请注明出处:https://www.javaidea.cn/article/7520.html

(0)
上一篇 2022年2月7日 上午10:02
下一篇 2022年2月7日 上午10:02

相关推荐

发表评论

您的电子邮箱地址不会被公开。