Java 中的“==”和equals()方法区别 java==equals
程序员文章站
2022-07-12 11:18:43
...
1、“==”
1)用于比较两个基本数据类型数据是否相等,比较的是内存中存储的值是否相等。
如:int a=100;
int b=100;
则a==b结果为true。
2)用于判断两个引用变量是否指向同一对象。
如:String a="abc";
b=a;
则a==b结果为true。
另外:String a="abc";
String b="abc";
则a==b结果依然为true。(指向字符串常量池中的同一个对象)
2、equals()方法
1)用于比较两个引用变量指向的对象值是否相等。
如:String a=new String("abc");
String b=new String("abc");
则a==b结果为false,a.equals(b)结果为true。
2)对于自定义的类,默认会继承Object对象的equals()方法,代码如下:
public boolean equals(Object o){ return this==o; }
结论:
a)如果自定义类没有覆写Object的equals()方法,则使用equals()的效果和使用“==”一样,即比较两个引用变量是否指向同一个对象。
b)如果想比较自定义类的两个对象是否相等,则需要覆盖Object的equals()方法,定义自己的比较规则。
比如:
public class Person{ private String name; public void setName(String name){ this.name=name; } public String getName(){ return name; } public boolean equals(Object obj){ if(this==obj){ return true; } Person p=(Person)obj; return p.getName().equals(this.name); } }
上一篇: DRF环境搭建及入门
下一篇: 进程信号
推荐阅读
-
Javascript中类式继承和原型式继承的实现方法和区别之处
-
java 抽象类和接口的区别详细解析
-
Java overload和override的区别分析
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
-
C#中Equals方法的常见误解
-
Java中parseInt()和valueOf(),toString()的区别
-
Java日期时间API系列9-----Jdk8中java.time包中的新的日期时间API类的Period和Duration的区别
-
【Java必修课】通过Value获取Map中的键值Key的四种方法
-
OneinStack一键安装PHP/JAVA/HHVM和超详细的VPS手动安装LNMP的方法
-
关于jquery中attr()和prop()方法的区别