首页 > 试题广场 >

请你说说==与equals()的区别

[问答题]
请你说说==与equals()的区别
== 比较基本数据类型时,比较的是两个数值是否相等; 比较引用类型是,比较的是对象的内存地址是否相等。 equals() 没有重写时,Object默认以==来实现,即比较两个对象的内存地址是否相等; 重写以后,按照对象的内容进行比较
发表于 2022-04-26 15:52:31 回复(10)
    值类型是存储在内存中的堆栈,而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
    ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
    ==比较的是2个对象的地址,而equals比较的是2个对象的内容。
    显然,当equals为true时,==不一定为true;
发表于 2022-04-26 18:49:27 回复(0)
==比较基本数据类型时,比较的是数值,比较引用类型时,比较的是引用的内存地址。对象的equals重写前默认是==进行比较,重写后比较的是引用的值是否相等
发表于 2022-05-03 13:50:28 回复(0)
==既可以比较基本类型也可以比较引用类型,基本类型比较的是值,引用类型比较的是地址;equals是Object 的方法,比较的是引用类型,如果equals没有被重写,和==是一样的,比较地址,如果被复写,具体情况具体分析。例如String,比较的是值。
编辑于 2023-05-14 23:18:51 回复(0)
== 是一个运算符。equals则是string对象的方法, 1、基本数据类型比较 ==和Equals都比较两个值是否相等。相等为true 否则为false; 2、引用对象比较   ==和Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false; 需要注意的是:   1、string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同;   2、当你创建两个string对象时,内存中的地址是不相同的,你可以赋相同的值。   所以字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的;   3、基本数据类型比较(string 除外) == 和 Equals 两者都是比较值
发表于 2022-08-13 17:25:27 回复(1)
==:在比较的是值类型的时候,比较的是它们的大小是否相同,在比较引用类型的时候,比较的是它们的内存地址是否相同。 equals:在比较值类型的时候比较的是它们的大小,在比较引用类型的时候,如果equals方法重写过,那么看定义比较的是什么,例如String比较字符串的时候比较的是它们的内容是否相同,如果没有重写过的话,引用类型比较的时候还是比较的是内存地址。
发表于 2022-05-07 16:32:41 回复(0)
基本数据类型用==比较的是数值是否相等, 引用数据类型用==比较的是引用地址是否相等, 而每个类的equal重写前比较的也是引用地址,所以需要手动重新来实现比较每个类的数据。
发表于 2022-04-28 14:31:35 回复(0)
==在比较基本类型时比较的是值是否相等,再比较引用类型时比较的是地址是否相同,在方法中如果没有重写equals()方法则默认用==比较两个对象的地址是否相等,重写后按照内容进行比较。
发表于 2022-08-06 13:53:05 回复(0)
==在比较基本数据类型的时候,比较的是两个数值是否相等,比较引用数据类型的时候,比较的是对象的内存地址是否相等。而equals没有在重写的时候,比较的是两个对象的内存地址是否相等,重写以后按照对象的内容进行比较。
发表于 2022-06-09 17:29:25 回复(0)
对于基本数据类型“==”比较的是字面值,而对于引用数据类型来说“==”比较的是对应的内存地址。当一个创建的新对象,没有重写equals方法时,此时equals()方法和“==”的功能一样。当重写过equals方法后,此时比较的就是对象中的内容。
发表于 2022-05-28 14:30:31 回复(0)
重写EQUALS()方法时,则判断的是内容相不相等
发表于 2022-05-07 21:50:41 回复(0)
111
编辑于 2022-04-27 14:02:03 回复(0)
答:==比较的是值,当比较基础数据类型时,比较的是数值是否相等,当比较引用类型时,比较的是地址是否相等。而equals()比较的是对象中的内容是否相等。
发表于 2024-03-27 20:20:13 回复(0)
==判断的是等号左右两边的值的地址是否相等,而equals()判断的是值是否相等。
发表于 2023-11-11 16:21:10 回复(0)
1、== 对比的是值是否相等,基本数据类型是变量值,引用类型是对象地址; 2、equals默认会用 == ,但通常会重写;
发表于 2023-02-12 13:41:27 回复(0)
== 比较基本数据类型时,比较的是两个数值是否相等; 比较引用类型是,比较的是对象的内存地址是否相等。
equals() 没有重写时,Object默认以==来实现,即比较两个对象的内存地址是否相等; 重写以后,按照对象的内容进行比较
发表于 2023-02-02 18:01:08 回复(0)
在Java中,对于基本数据类型是在栈开辟空间直接存值,对于引用数据类型在栈存储的是指向堆内存中的地址。 ==比较基本数据类型/引用数据类型比较的都是值是否相同,基本数据类型比的是栈中存的值,引用类型比的也是栈中存值,不过该值非彼值,该值是指向堆内存中的地址。 equals是Object中的方法,默认实现和==一样,不过往往都会重写equals方法,去比较堆内存中的内容,也就是两个对象的内容
发表于 2023-02-01 20:13:16 回复(0)
1.==:比较基本数据类型:比较两个变量的值是否相同 比较引用类型:比较两个对象的地址值是否相同,即两个引用是否指向同一个地址值。 2.equals:如果类中重写了equals方法,比较内容是否相同(内容相同就相同)。 String、Date、File、包装类都重写了Object类的equals方法。 如果类中没有重写equals方法,比较地址是否相同(地址相同才为true)。
发表于 2022-11-01 10:44:56 回复(0)
==是比较基本数据类型,比较两个值是否相等。如果比较的是引用数据类型,一般是比较地址是否相等,如果是在object里面也是通过==去比较的,如果重写后是根据里里面的值去比较是否相等
发表于 2022-10-16 22:24:45 回复(0)
如果是基本数据类型,==比较的是值 如果是引用数据类型,==比较的是内存地址值,equals比较的才是值
编辑于 2024-04-16 09:55:48 回复(0)