java中==和equals的区别
来源:互联网 发布:在淘宝上买书需要什么 编辑:程序博客网 时间:2024/06/02 03:54
1.首先明确一点:“==”可以比较基本数据类型和引用数据类型,.equals()方法是是继承object的一个方法,所以它不能比较基本数据类型,只能比较引用数据类型。
2.然后要知道“==”比较基本数据类型和比较引用数据类型的区别,比较基本数据类型是比较的数值,而比较引用数据类型是比较的对象的地址。
3..equals()方法比较引用数据类型与“==”区别在于,.equals()方法方法比较灵活,可以对它进行重写,如果不进行重写,那么两者没有任何区别,可通过object的equals()方法的源码进行解释:
public boolean equals(Object obj) { return (this == obj); }
4.下面用两个例子进行说明重写与不重写equals()方法的区别:
public class Test {public static void main(String[] args) {Integer a1 = new Integer(2);Integer a2 = new Integer(2);System.out.println(a1==a2); System.out.println(a1.equals(a2));}}
此时,a1和a2是两个引用数据类型,比较的是对象的地址,用输出语句输出(a1==a2),结果明显为false,但a1和a2中的存储的值明显是相等的,a1不等于a2又不符合逻辑,这时Integer 类对equals()方法进行了重写,比较的是两者的值的大小,所以结果为true,具体的源码可以到api文档进行查看。常见的重写了equals()方法的类有:八种基本数据类型的包装类和String类,集合类等。
public class Test {public static void main(String[] args) {Person p1 = new Person();Person p2 = new Person();System.out.println(p1==p2);System.out.println(p1.equals(p2));}}class Person {}
新建一个普通类,用类创建了两个对象,由于没有重写equals()方法,当使用“==”和equals()方法时,输出结果都为false。
阅读全文
1 0
- Java中==和equals的区别,equals和hashCode的区别
- Java中==和equals的区别,equals和hashCode的区别
- Java 中==和 equals 的区别, equals 和 hashCode 的区别
- Java中==和equals的区别,equals和hashCode的区别
- Java语法----Java中equals和==的区别
- Java语法----Java中equals和==的区别
- Java语法----Java中equals和==的区别
- Java语法----Java中equals和==的区别
- Java 中 equals 和 == 的区别和联系
- Java中==和equals的区别和联系
- java中字符串的equals和==的区别
- java中 ==和 equals区别
- java中"==" 和 equals区别
- Java中equals和==区别
- Java 中equals和==区别
- java中==和equals区别
- Java中equals和== 区别
- Java中"=="和"equals"区别
- 正则表达式
- treeset类
- jedis与redis
- java基础之DateFormat类
- Linux下设置开机自启动Tomcat
- java中==和equals的区别
- SDUT-数据结构实验之排序五:归并求逆序数
- Java——StringBuffer,String总结
- Codeforces Gym
- 笔试题6——数组中2个出现一次的数(其他2次)
- 切换夜间模式
- android webview loadurl弹出系统浏览器问题
- HDU-3333:Turing Tree(莫队算法+线段树或树状数组+map或离散化)
- 计划