JAVA基础问题?新手求助!!!

本人刚开始学习java,请问java中的==和=有啥区别啊? 还要equals!!!

6个回答

= 是赋值;
== 判断两个对象所引用的内存地址是否是相同
比如2个字符串对象
String s1 = new String("str");
String s2 = new String("str");
如果用==号比较,会返回false,因为创建了两个对象,他们在内存中地址的位置是不一样的。
equals()比较的是对象的值,equals方法是从Object继承来的,Java中任何对象都自动有这个方法; 它是java.lang.Object类中的一个方法。因为java中所有的类都默认继承于Object,所以所有的类都有这个方法。

=是赋值运算符,==、equals是比较运算,其中==用于基本数据类型比较,比如5==5则返回true, equals用于引用类型比较。

=是赋值运算,==和equals是比较运算。
==用于基本类型比较,比较是值相不相等,==用于引用类型比较,比较的是,是不是同一个引用地址。
equals 用于引用类型比较,equals方法没有重写时,和==没有区别,
重写方法后,equals比较的是同类型对象。

equals()方法是Object类里的方法,所以所有的类都继承了这个方法,功能是比较两个对象的首地址是否相同。
一般情况下,大多数的类的equals()功能就是比较首地址是否相同,但也有例外,比如String的equals(),功能是比较两个字符串内容是否相同。
你也可以像这样根据应用场景,自己重写equals()方法,使其有不同的功能。
(我也是新手,肯定有不对的地方,请矫正。听说新手要多回答问题,进步才快)

== 属于是左右两边的值作比较,返回TRUE或者false
= 属于是赋值号,即将右边的值赋给左边的变量
equals属于是比较两个参数的值。 可以是比较两个引用的地址,可以是比较两个参数的详细内容

= 赋值
== 比较对象的内存地址,即:引用变量的所对应的内存数值是否相等
equals默认是与==意义一样的,重写后,会根据你的重写后规则去比较

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!