equals和==的使用
1.equals的使用:
引用数据类型的比较:通常情况下比较的是引用数据类型下的栈中的地址,但当你重写了equals方法后就不一定了
User user1=new User("tom",12);
User user2=new User("tom",12);
//结果为false
System.out.println(user1 equals user2);
//结果为false System.out.println(user1 == user2);
User user3=user1;
//结果为true System.out.println(user1 == user2);
2.==的使用:
基本数据类型的比较:比较堆中存储的值,常量池
int a1=65;
int a2=65;
//结果为true System.out.println(a1 == a2);
//结果为true int a1=65;
char c='A';
System.out.println(a1 == c);
3.objiect中的equals方法:未重写时时等同于==方法
Public boolean equals(Object obj){
return (this== obj);
}
4,总结:
4.1像String Data File 包装类 等类的equals方法时重写了Object 的equals方法,这时是比较的内容;
4.2在实际开发中,对于自定义类,往往需要比较两个对象的实体内容是否相同,因此需要重写Object 的equals方法
4.3 1==用在基本数据类型时,
比较两个变量的值是否相同,如果是相同数据类型直接比较,
如果比较的是两种不同的数据类型,但两者关系是可以相互进行转换的也可以比较
比较的是两种不同的数据类型(例如基本数据类型int 和 String 时) 编译报错
例如
int a1=65;
char c='A';
System.out.println(a1 == c);//结果为true
2==用于引用数据类型比较时
比较两个引用保存的地址值是否相同
4.3 equals()的使用只能用在引用数据类型上
equals和==的使用的更多相关文章
- equals变量在前面或者在后面有什么区别吗?这是一个坑点
我就不废话那么多,直接上代码: package sf.com.mainTest; public class Test { public static void main(String[] args) ...
- How to implement equals() and hashCode() methods in Java[reproduced]
Part I:equals() (javadoc) must define an equivalence relation (it must be reflexive, symmetric, and ...
- 【特种兵系列】String中的==和equals()
1. 小样示例 public static void main(String[] args) { String a = "a" + "b" + 123; Str ...
- (转)浅谈Java中的equals和==
原文地址: http://www.cnblogs.com/dolphin0520/p/3592500.html 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new S ...
- 浅谈Java中的equals和==(转)
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...
- List<T>Find方法,FindAll方法,Contains方法,Equals方法
假如传入的T是一个类, List<MessageInfos> MessageInfos = new List<MessageInfos>(); MessageInfos= Me ...
- 让代码重构渐行渐远系列(3)——string.Equals取代直接比较与非比较
重构背景及原因 最近由于项目组的人员在不断扩充,导致项目中代码风格各异,大有百花齐放甚至怒放之势.考虑到团队的生存与发展,经过众人多次舌战之后,最终决定项目组根据业务分成几个小分队,以加强团队管理与提 ...
- [java] 更好的书写equals方法-汇率换算器的实现(4)
[java] 更好的书写equals方法-汇率换算器的实现(4) // */ // ]]> [java] 更好的书写equals方法-汇率换算器的实现(4) Table of Content ...
- Equals和ReferenceEquals
稍微分析下一下两个方法的区别: public static bool Equals(object objA, object objB); public static bool ReferenceEqu ...
- 【原创】Java和C#下String类型中的==和equals的原理与区别
一.Java下 1.几个例子 public static void main(String[] arge) { String str1 = new String("1234"); ...
随机推荐
- python学习Day04--列表
[主要内容] 1.列表的索引: lst=[1,2,3,4,5,6] print(lst[0]) #获取第一个元素 lst[1]='你好' #改变列表中的值 2.列表的切片: lst=[ ...
- 温故知新,.NET 重定向深度分析
在早期的.NET Framework程序员心里,重定向Redirect其实分为两种: Response.Redirect: Response对象的Redirect方法提供了一种实现客户端重定向的方法 ...
- Java并发编程(一):线程基础知识以及synchronized关键字
1.线程与多线程的概念:在一个程序中,能够独立运行的程序片段叫作“线程”(Thread).多线程(multithreading)是指从软件或者硬件上实现多个线程并发执行的技术. 2.多线程的意义:多线 ...
- python环境安装及配置
一.下载python,可选择python2.x或python 3.0 下载地址:[官网],选择系统 ---选择对应版本 注意自己电脑是32位(X86)还是64位(x86-64) 下载文件包,点击点击安 ...
- Python 协程 - Coroutines
协程 - Coroutines Awaitable Objects, Awaitable Objects 通常由 __await__() 生成, 而 Coroutine objects 是由 asyn ...
- 手把手带你阅读Mybatis源码(二)执行篇
前言 上一篇文章提到了MyBatis是如何构建配置类的,也说了MyBatis在运行过程中主要分为两个阶段,第一是构建,第二就是执行,所以这篇文章会带大家来了解一下MyBatis是如何从构建完毕,到执行 ...
- 从linux命令行分享文件:bashupload.com和transfer.sh
背景 传输文件是一个常见的需求,简单的做法是通过即时通讯工具,邮件,网盘完成. 但当分享或接收的一端为远程服务器,只有命令行可以操作时,一个能支持在命令行完成分享和下载的工具,就会省下不少麻烦. 下面 ...
- sql 忘记密码 解决方法(window cmd命令解决)
cd wamp\bin\mysql\mysql5.6.17\bin mysqld --skip-grant-tables
- zabbix流量过大就断图
监控内网千兆交换机,流量图断断续续,大概位于400-500兆就会断图,而且还不准. 按照这个操作几乎可以成功 链接:http://itfish.net/article/23536.html h ...
- webpack性能优化
Webpack优化打包速度以及性能优化 1.跟上技术的迭代(Node.Npm.Yarn) 2.在尽可能少的模块上应用loader 3.Plugin尽可能精简并确保可靠 4.resolve参数合理配置 ...