实例讲解java中==和equals的区别
来源:互联网 发布:linux下lnmp环境搭建 编辑:程序博客网 时间:2024/05/19 20:37
很多人在学习java的时候,总是会被==和equals方法搞蒙了,乱了半天还是没能把它两个的区别搞清楚,下面就我个人的理解,跟大家分享一下,有错误之处希望各位高手不要见笑.
在java中数据类型分为两大类:一类是基本数据类型,另一类是引用数据类型.其中基本数据类型又分为8种分别是:四种整数类型(byte、short、int、long),两种浮点数类型(float、double),一种字符类型(char),一种布尔类型(boolean)
引用数据类型也就是我们常说的类了,在java中String也是一种引用类型.
使用==比较可以分成两种情况:
1,当等号左右都是基本数据类型时,那就是值的比较 例如:
int a=1;
int b=1;
int c=2;
System.out.println(a==b); //结果为true
System.out.println(a==c); //结果为false
因为我们左右两边都是基本数据类型,所以比较的是变量的值是否相等
2,当等号左右不是基本数据类型时,那就是地址的比较 例如:
String a="abc";
String b="abc";
String c="bc";
String d=new String("abc");
String e=new String("abc");
System.out.println(a==b);//结果为true
System.out.println(a==c);//结果为false
System.out.println(a==d);//结果为false
System.out.println(d==e);//结果为false
因为等号左右都是对象也或者说是引用,所以比较的是地址,而a和b的地址是相同的,这里大家可能会有疑问为什么a和b的地址会相同,而和d的地址又不同了,以及d和e的地址为什么不同,这些问题涉及到java内部构造对象的原理,我会在下一篇文章java构造对象的原理里做答,这里只是要大家理解==的作用,
对于equals方法来说,比较简单,大家首先要明白,equals是一个方法,那使用方法的只能是对象的实例,所以equals比较的是对象的值是否相等,注意,对象和对象的值是两个不同的概念, 例如:
String a="abc";
String b="abc";
String c="bc";
String d=new String("abc");
String e=new String("abc");
System.out.println(a.equals("abc"));//这里采用内容:结果为true
System.out.println(a.equals("ab"));//这里采用内容:结果为false
System.out.println(a.equals(b));//这里采用一个对象:结果为true
System.out.println(a.equals(d));//这里采用一个对象:结果为true
System.out.println(a.equals(e));//这里采用一个对象:结果为true
System.out.println(a.equals(c));//这里采用一个对象:结果为false
因为equals()比较的是两个对象的内容是否相等,a的内容是"abc",b,d,e的内容都是"abc",所以结果都为true,而c内容是"bc"所以结果为false
也不知道大家清楚了没有,如果有不理解的请给我留言!
- 实例讲解java中==和equals的区别
- 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和== 区别
- 桥接模式
- 临时表的引用
- MM给男生的60条消息,很感人
- MFC窗口过程函数之偷梁换柱
- 随摘
- 实例讲解java中==和equals的区别
- CPPUnit使用方法初探
- 史玉柱经典语录
- Ehcache 1.5.0 User Guide - Cache Configuration 缓存配置(2)
- 查找数据库所有表以及表的所有列
- libtiff使用小记
- Eclipse的安装过程
- 初探计算机病毒世界(1)--感染
- 集合操作的利器:CollectionUtils