当前位置: 首页高频题加分模版训练问题详情 【Java基础专题】3. = =和equals有什么区别? 本问题对应的项目链接:高频题回答模版训练 回答指导:先回答 equals是一个方法,然后默认情况下比的是什么,不同的类实现方法不同,比的是什么取决于别人怎么写
共以下 14 个回答
equals是个方法,在没有重写的时候,和equals本质上是一样的,因为equals这个方法代码就是用实现的,但是重写后就不一样
用 == 来判断的时候,如果说等号的两边都是基本数据类型,那么他判断的就是这两个值是否相等,如果说等号两边都是引用类型,那么他判断的就是这两个对象它指向的地址是否相同。
用equals来判断的话,它通常情况下就是判断的这两个对象,它的某一些属性是否完全一样,根据这些属性的区别来决定返回true或者false。
举个例子来说,String a=new string(abc),String b也等于6new string (abc)。用equals来判断ab的话,返回是true,但是用 等于等于 来判断的话,返回却是false
需要注意的一点就是我们在调用方法的时候,尽量调用重写过的equals方法,如果说没有重写方法的话,那它默认就是继承的object这个类它的equals方法。它底层的默认实现就是用的 等于等于来进行判断的。本质上就跟直接用等于等于来判断没有区别,所以说我们需要尽量的重写equals这个方法之后再进行判断。
1.比较基本数据类型、引用数据类型:对象的地址;
2.equals()不能比较基本数据类型,比较引用数据类型
没有重写:和比较equal()是一样的,比较的是对象的地址
重写:一般用于比较对象的属性值是否相等
= = 是一个运算符,equals 是 Object 类方法之一。如果没有对 equals() 方法重写,默认情况下 equals 和 = = 是一样的,即比较对象的引用是否相等。
但是,由于不同的类实现方法不同,很多类重写了 equals 方法,比如 String、Integer等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。
= = 在比较时,如果比较的对象是基本数据类型,则比较的是数值是否相等;如果比较的是引用数据类型,则比较的是对象的地址值是否相等。
还有一点需要注意 equals() 方法不能用于比较基本数据类型的变量。
equals()是方法,一般是通过比较对象的hashCode()方法,默认是地址,如果是基本数据类型则为值比较。
是运算符,如果是基本数据类型为值比较,引用数据类型为比较对象地址。
默认情况下比较的是引用类型的变量所指向的对象的地址;很多类重写了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等
基本数据类型判断值,引用类型判断地址,equal不重写可以看成判断地址,很多时候会重写
判断基数据类型是判断值是不是相等,判断引用数据类型是判断地址值
equal是判断在堆中是不是一样的地址值,一般会重写。
equals是object类中的一个方法,用于比较两个对象的引用地址,也就是对象所在堆内存的地址,在平常使用中我们可以重写equals方法,以满足我们的业务需求。
是一个双目运算符,比较两个两个基本数据类型的值是否相等,比较引用数据类型时比较两个对象的地址是否相同。
equals是object类中的一个方法,用于比较两个对象的引用地址,也就是对象所在堆内存的地址,在平常使用中我们可以重写equals方法,以满足我们的业务需求。
是一个双目运算符,比较两个两个基本数据类型的值是否相等,比较引用数据类型时比较两个对象的地址是否相同。
equals()是一个Object类的常用方法,用于引用类型的比较,默认实现是比较两个对象的内存地址,但是很多类都重写了equals方法,使得比较的是对象的属性和对应的值,例如String Integer等类,比较是否相等时,都应该用equals();
而多用在基本数据类型的比较,比如int char等,可以直接比较它们的值是否相等。
= =是一个操作运算符,运算数是基本数据类型比较的是值否相等,运算数是引用数据类型比较的就是两个引用的地址是否相等。
equals()是Object类中的方法,在没有重写的情况下,equals底层就是通过 = = 来实现的,用来比较两个引用地址是否相等,也就是两个引用是否指向堆内存中同一个对象。
我们通常重写equals方法,用来比较两个对象的属性是否相等,例如各种包装类,String类。
equals()是一个方法,Object类中的一个方法,用来比较对象是否相等。因为对象之间的比较是一个通用的行为,所以我认为Java语言的设计者把equals()封装到Object类中,因为Java中所有类都默认继承Object类,这样Java每个类都默认实现了equals()方法。而Object类中equals()方法默认实现为 = = 。而 = = 在比较基本数据类型时比较值是否相等,比较引用类型时用来比较引用指向的对象的地址值是否相同,地址值就是对象的存放位置。所以当我们需要比较两个对象内容是否相等时,就需要重写equals()方法来实现。而String类,Java默认实现equals()方法是比较字符串是否相等的,因为String类重写了equals()方法用来比较值。
首先 = = 是一个操作符 ,equals 是超类 Object 中的方法,默认是用 = = 来比较的。也就是说,对于没有重写 equals 方法的子类,equals 和 = = 是一样的。
而 = = 在比较时,根据所比较的类的类型不同,功能也有所不同:对于基础数据类型,如 int 类型等,比较的是具体的值;而对于引用数据类型,比较的是引用的地址是否相同。
对于重写的 equals 方法,比的内容取决于这个方法的实现。