java equals什么意思(java里 equals和== 区别)
大家好,感谢邀请,今天来为大家分享一下java equals什么意思的问题,以及和java里 equals和== 区别的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
java equals
equals是一个方法。。==是一个运算符。。
两个肯定不一样的。。
方法里面的东西可以随便写。。
但运算符是java底层就决定了的。。
在所有类的父类Object里面有一个equals方法。。
public boolean equals(Object obj){
return(this== obj);
}
是用==比较的。。
如果你也想按照这个比。。就用他这个方法就是了。。
如果你想按照你自己的想法比。。就重写这个方法就是了。。
比如String类就重写了这个方法。。
public boolean equals(Object anObject){
if(this== anObject){
return true;
}
if(anObject instanceof String){
String anotherString=(String)anObject;
int n= count;
if(n== anotherString.count){
char v1[]= value;
char v2[]= anotherString.value;
int i= offset;
int j= anotherString.offset;
while(n--!= 0){
if(v1[i++]!= v2[j++])
return false;
}
return true;
}
}
return false;
}
他比较的是内容。。
比如你相比较两个Person对象。。只要他们的名字就一样就是相等。
你重写下equals就行了。。
也就是说equals到底怎么比的。。是由方法里的内容决定的。。与==无关。。
你不让equals干比较是否相等这个事情都行。。
java ==和equals的区别
属性不同:==是运算符号,而equals则属于方法。当==两边的对象属于基本类型时,==的作用仅是比较对象的值是否相等,如果相等返回true,否则返回false;当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否一致,如果同时指向同一地址,则返回true,否则返回false.
equals两边对象只能属于引用数据类型,因为equals是方法,所以它是如何具体判断对象是否相等是根据程序而定的,equals是属于 object类,默认是判断内存地址是否相同,但在object的子类中可以重写equals方法,如在String类中只是比较对象内容是否一致,一致则返回true,否则返回false。
请问java中 ==和equals 的区别
区别:
1、功能不同
"=="是判断两个变量或实例是不是指向同一个内存空间。
"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。
2、定义不同
"equals"在JAVA中是一个方法。
"=="在JAVA中只是一个运算符合。
例子:
Student student1= new Student();
Student student2= new Student();
System.out.println(student1.equals(student2));
System.out.println(student1== student2);
3、运行速度不同
"=="比"equals"运行速度快,因为"=="只是比较引用。
"equals"比"=="运行速度要慢。
参考资料:百度百科 JAVA基础
java里 equals和== 区别
==是一个比较运算符,基本数据类型比较的是值,引用数据类型比较的是地址值。
(比较地址值即是指是否为同一个对象的引用)
equals()是一个方法,只能比较引用数据类型。重写前比较的是地址值,重写后比一般是比较对象的属性。
扩展资料:
java中的数据类型,可分为两类:
1.基本数据类型,也称原始数据类型。
byte,short,char,int,long,float,double,boolean,他们之间的比较,应用双等号(==),比较的是他们的值。
2.复合数据类型。
当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。
JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地址。
但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。
对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。
java equals什么意思的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java里 equals和== 区别、java equals什么意思的信息别忘了在本站进行查找哦。