首页编程java编程java equals什么意思(java里 equals和== 区别)

java equals什么意思(java里 equals和== 区别)

编程之家2023-10-1196次浏览

大家好,感谢邀请,今天来为大家分享一下java equals什么意思的问题,以及和java里 equals和== 区别的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

java equals什么意思(java里 equals和== 区别)

java equals

equals是一个方法。。==是一个运算符。。

两个肯定不一样的。。

方法里面的东西可以随便写。。

java equals什么意思(java里 equals和== 区别)

但运算符是java底层就决定了的。。

在所有类的父类Object里面有一个equals方法。。

public boolean equals(Object obj){

java equals什么意思(java里 equals和== 区别)

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什么意思的信息别忘了在本站进行查找哦。

繁体转简体(文档繁体转简体)java对象的get方法的区别是什么意思,get()在java中,是什么意思什么用途