Java 中的“==”和equals()方法比较总结。
1. "==" 的用法:
1) 对于原生数据类型来说,比较的是左右两边的值是否相等。
2) 对于引用类型来说,比较左右两边的引用是否指向同一个对象,或者说左右两边的引用地址是否相同。(其实也是值是否相等,因为引用类型的地址是数字表示的)
需要注意的是要把‘==’和equals()方法区分开
2. equals()方法
1) 对于String类的equals()方法来说,它对Object类中的equals方法进行了重写,它是判断当前字符串与传进来的字符串的内容是否一致。源码如下:
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;
}
2) 对于Object类来说,equal()方法就是通过==实现的。源码如下:
public boolean equals(Object obj) {
return (this == obj);
}
两者比较举例:
public class StringTest {
public static void main(String[] args) {
String str = new String("aa");
String str2 = new String("aa");
System.out.println(str.equals(str2));
String str3 = "aa";
String str4 = "aa";
System.out.println(str3.equals(str4));
System.out.println("-----------------");
Object object = new Object();
Object object2 = new Object();
System.out.println(object.equals(object2));
System.out.println(object.equals(object));
}
}
最后运行的结果是:前两个都是true(因为他们是String类型的,重写了.equals方法),第三个是false(因为是Object类型比较的是对象的地址是否相等),最后一个是true(同一个对象,内存地址肯定是相同的)
关于Object类的equals方法的特点
a) 自反性(reflexive):x.equals(x)应该返回true
b) 对称性(symmetric):x.equals(y)为true,那么y.equals(x)也为true。
c) 传递性(transitive):x.equals(y)为 true并且y.equals(z)为true,那么x.equals(z)也应该为true。
d) 一致性(consistent):x.equals(y)的第一次调用为true,那么x.equals(y)的第二次、第三次、第n次调用也应该为true,前提条件是在比较之间没有修改x也没有修改y。
e) 对于非空引用x,x.equals(null)返回false。
转载于:https://my.oschina.net/ChinaHaoYuFei/blog/706628
相关知识
借花献佛!朋友干了5年整的Java面试官,给我分享了一份面试官最爱问的Java面试题
菜根花小宝贝
==和equals#程序员
Java 并没有死!那么,Java这朵“永生花”是怎么永葆青春的呢?
JAVA编程艺术
我的2015下半年总结
基于Java网上鲜花销售系统的设计与实现
使用java编写一只玫瑰花
Java案例
怎么用java代码生成玫瑰花
网址: Java 中的“==”和equals()方法比较总结。 https://www.huajiangbk.com/newsview325847.html
上一篇: 木兰花市周年庆隆重开幕,365天 |
下一篇: 2018年超星园林花卉学章节测试 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039