JAVA基础:“==”和“equals”的区别
2017-08-15 21:38
155 查看
“==“: ==如果是比较引用类型,则是比较两个引用是否是指向同一个对象。"equals": 如果引用equals的类没有重写equals方法,则equals方法和==是一样的意思,即比较两个引用地址是否相等。如果重写,则一般比较的是对象的内容是否相等,具体的视重写的方法而定。 Integer a = new Integer(1);Integer b = new Integer(1);a==b为false,equals为true。
因为a和b分别new了两个对象,所以两个对象的地址是不同的,==为false。equals为ture是因为Integer重写了equals方法。所以直接
比较对象的值。
这是Integer类的源代码中的equals方法,可以看到,当a.equals(b)时,则是先判断b是不是Integer的实例,如果是,则把b强制转换
成integer进行数值比较,如果数值相同则为true
上面的输出为false,因为c并没有重写equals方法,所以相当于是c==cc,比较的内存地址,所以为false
"=="比较基本类型如int的时候,则是比较的值相当。
上面返回true,因为s1创建时,常量池里面有了字符串123,所以当s2创建的时候,则s2直接指向字符串123,所以两个是相等的。这点
要注意
相关文章推荐
- Java基础面试题:==和equals方法有何区别?
- 黑马程序员——Java基础---equals和"=="的区别
- Java基础-equals 与 == 区别
- 07.(java基础)面试题04 ==,equals区别
- Java 学习笔记-基础-"=="和equals()的区别。
- Java基础知识整理(三)- equals和==的区别
- 面试基础整理(一)---Java中==和equals的区别
- java基础之 “==”和“ equals”以及instanceof的区别
- JAVA基础知识回顾(基本数据类型,switch参数,equals与==的区别,Object有哪些公用方法)-1
- java基础(二)equals与==的区别
- Java基础 equals()、hashCode()和 == 区别
- 第2章 Java编程基础——FAQ2.21 ==和equals()都可用于比较两个操作数是否相等, 它们有什么区别吗?
- Java基础回顾: "=="和equals()方法的区别
- Java基础(一)——equals和==的区别
- java基础问题----"=="和equals方法究竟有什么区别
- 黑马程序员——JAVA基础之 == 和equals区别
- 【JAVA基础小问题】"=="和equals方法有什么区别?
- java基础(六)-----浅谈java中“==”和“equals”的区别
- [Java基础] HashCode、equals、==的区别
- java基础——“==”与equals方法的区别