equals与==的区别
来源:互联网 发布:淘宝售后率是什么意思 编辑:程序博客网 时间:2024/06/03 08:19
equals是比较两个对象的值
而==是比较两个对象的地址
例如:
String a="123";
String b="123";
String c= new String("123");
System.out.println(a==b);//结果为true
System.out.println(a==c);//结果为false
System.out.println(b==c);//结果为false
System.out.println(a.equals(b));//结果为true
System.out.println(a.equals(c));//结果为true
System.out.println(b.equals(c));//结果为true
出现这种结果原因:
程序在运行到String a="123"时候会创建一个字符串缓冲池使用,而a这个对象会被创建,其值为"123"。
当程序运行到String b="123"时,程序首先会在这个String缓冲池中寻找相同值的对象,因为在运行
String a="123"这句代码时,字符串缓冲池中已经有了a这个对象,其值与要创建的对象b的之相等,所以
在字符串缓冲池中就不会创建b对象,而是将a对像引用给b(相当与b为a的一个别名)。
当程序运行String c= new String("123")时,则不会在字符串缓冲池找具有相同值的对象,而是会新建
一个对象c,其值为"123"。
而==是比较对象的地址,equals是比较两个对象的值。
所以a与b为同一个对象,其地址相同,而c是不同的对象,其地址与a,b不同。
而==是比较两个对象的地址
例如:
String a="123";
String b="123";
String c= new String("123");
System.out.println(a==b);//结果为true
System.out.println(a==c);//结果为false
System.out.println(b==c);//结果为false
System.out.println(a.equals(b));//结果为true
System.out.println(a.equals(c));//结果为true
System.out.println(b.equals(c));//结果为true
出现这种结果原因:
程序在运行到String a="123"时候会创建一个字符串缓冲池使用,而a这个对象会被创建,其值为"123"。
当程序运行到String b="123"时,程序首先会在这个String缓冲池中寻找相同值的对象,因为在运行
String a="123"这句代码时,字符串缓冲池中已经有了a这个对象,其值与要创建的对象b的之相等,所以
在字符串缓冲池中就不会创建b对象,而是将a对像引用给b(相当与b为a的一个别名)。
当程序运行String c= new String("123")时,则不会在字符串缓冲池找具有相同值的对象,而是会新建
一个对象c,其值为"123"。
而==是比较对象的地址,equals是比较两个对象的值。
所以a与b为同一个对象,其地址相同,而c是不同的对象,其地址与a,b不同。
0 0
- equals与==,equals与hashcode的区别
- equals(Object) 与 == 的区别
- ==与equals的区别
- equals(Object) 与 == 的区别
- equals()与==的区别
- ==与equals()的区别
- equals与==的区别
- Java ==与equals()的区别
- equals(Object) 与 == 的区别
- ==与equals()的区别
- == 与 equals() 的区别
- equals(Object)与==的区别
- c# equals与==的区别
- equals()方法与==的区别
- ==与equals的区别
- c# equals与==的区别
- "=="与"equals()"的区别
- java equals与== 的区别
- 2017 Pycharm激活码
- 子类能否继承、访问父类的私有成员
- SQLServer 分布式访问 创建链接服务器
- 小小的知识点
- (1) quagga源码分析--大内总管zebra
- equals与==的区别
- log4j自定义级别并分类输出到文件
- 三相电机运转与相序的关系
- poj 3281 && NYOJ 326 Dining 最大流问题 EK
- Hibernate中query.setFirstResult() 和 query.setMaxResults用法
- 每日一题 No.33 字符串转数字函数的学习
- 1042. 字符统计(20)
- java script 面向对象
- 20170429-五一在家忙学习