JAVA中equals()和==比较
2016-03-22 11:29
246 查看
这两天做了很多牛客网站上面java专项训练,碰到了好多有关equals()和==比较的题目
先说一下理解:
对于基本类型(byte char short int long folat double boolean)'=='比较的是值的大小
对于复合类型(类)‘==’比较的是内存中存放的地址:如果是同一个new出来的对象则==为true否则为false
对于equals()方法:要看子类有没有覆写Object()这个大父类里面的equals()方法,如果覆写了就按照覆写完后的实现来比较
否则按照Object()类的来比较一般是内容的比较
![](http://img.blog.csdn.net/20160322110156874?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20160322110236555?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
A: c1=c2显然不对,c1 c2分别是两个对象,指向栈内分配的不同空间
C:m是一个long类型的数 c1是一个对象,显然不符
D:c1没有定义equals方法,默认调用Objecct类的方法
先说一下理解:
对于基本类型(byte char short int long folat double boolean)'=='比较的是值的大小
对于复合类型(类)‘==’比较的是内存中存放的地址:如果是同一个new出来的对象则==为true否则为false
对于equals()方法:要看子类有没有覆写Object()这个大父类里面的equals()方法,如果覆写了就按照覆写完后的实现来比较
否则按照Object()类的来比较一般是内容的比较
A: c1=c2显然不对,c1 c2分别是两个对象,指向栈内分配的不同空间
C:m是一个long类型的数 c1是一个对象,显然不符
D:c1没有定义equals方法,默认调用Objecct类的方法
相关文章推荐
- JAVA回调
- java读取excel文件
- [转]Ubuntu 12.04 安装 JDK 7 / JDK8 的两种方式
- Leetcode: 8. String to Integer (atoi)(JAVA)
- java 中提供的默认的快速排序的实现 .
- org.springframework.dao.support
- Eclipse中自动生成versionName的一种方法
- Spring 一二事(6) - IOC MVC 简易搭建
- 记录java 流(实现简单的文件读写)
- spring-data-jpa 使用
- java synchronized详解
- HashMap,HashSet,Hashtable,Vector,ArrayList 笔记
- java连接access数据库
- java synchronized关键字的用法以及锁的等级:方法锁、对象锁、类锁
- Java开发中的23种设计模式
- JFreeCharts画分时图
- JAVA API下几个常用的包
- java swing模仿随机频谱
- java swing模仿随机频谱
- 用eclipse打包apk和遇到的问题