java中equals使用方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中equals使用方法相关的知识,希望对你有一定的参考价值。
java中equals使用方法:
equals 方法是String类从它的超类Object中继承的, 被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。
对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。“==”比较两个变量本身的值,即两个对象在内存中的首地址。“equals()”比较字符串中所包含的内容是否相同。 例如:
s1 = new String("abc");s2 = new String("abc");s1.equals(s2) 是 true
3.对于非字符串变量来说,"=="和"equals"方法的作用是相同的都是用来比较其对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。
class AA obj1 = new A();
A obj2 = new A();
obj1.equals(obj2)是false 参考技术A 1. java中equals使用方法
equals:
操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同,且区分大小写
注: 通过查看源码更加清晰:
public boolean equals(Object anObject)
//两个变量是否是对同一个对象的引用
*
==用于比较引用和比较基本数据类型时具有不同的功能
if (this == anObject)
return true;
A instanceof B ,返回值为boolean类型,
* 用来判断A是否是B的实例对象或者B子类的实例对象。
* 如果是则返回true,否则返回false
if (anObject instanceof String)
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length)
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0)
if (v1[i] != v2[i])
return false;
i++;
return true;
return false;
2. 案例
equals():比较字符串中所包含的内容是否相同
//这个是内容明显相同
String a = new String("字符串1");
String b= new String("字符串1");
boolean c = a.equals(b);
System.out.println(c);
//内容不同
String a1 = new String("字符串1");
String b1= new String("字符串2");
boolean c2 = a1.equals(b1);
System.out.println(c2);
3."equals"方法的作用是用来比较其对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。
创建一个对象方便测试
class Demo
//"=="和"equals"方法的作用是相同的都是用来比较其对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。
public class TestDemo
public static void main(String[] args)
//实例化对象
Demo obj1 = new Demo();
Demo obj2 = new Demo ();
boolean d = obj1.equals(obj2);
System.out.println(d);
//扩展
//可以通过查看他们的地址值比较
System.out.println(obj1);
System.out.println(obj2);
//明显地址不一致 所以是false
参考技术B equals用于对象之间的比较,代表着不仅值要相等,而且地址也要相等。
String a="11"; String b="11"; 这时 这两个值是相等的。如果String a1 =new String("11");
String b = new String("11");这个时候,这两个值是不相等的。 参考技术C 自定义对象,往往要覆盖equals方法,来判断两个对象是否“相等”
如两个学生对象,如果学号相等,就认为是同一个对象。
private int num; //学号
..........
public boolean equals(Student student2)
return this.num == student2.num;
参考技术D 一般用于字符串对象的比较。比较的是对象的值。
以上是关于java中equals使用方法的主要内容,如果未能解决你的问题,请参考以下文章