“ == “运算符与equals()方法的区别
== :运算符
- 可以使用在基本数据类型变量和引用类型变量中;
- 如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等(不一定类型相同,可以自动类型提升);
eg:
int i = 10;int j = 10;
double d = 10.0;
System.out.println(i==j);//true
System.out.println(i==d);//true,自动类型提升
- 如果比较的是引用数据类型,比较的是两个对象的地址值是否相等,即两个引用是否指向同一个对象实体;
注:使用" == "时,必须保证两边的变量类型一致,否则编译不通过;
eg:
System.out.println("hello" == new java.util.Date());
equals():方法
- 是一个方法,不是运算符
- 只适用于引用数据类型
- Object类的equals()方法源码:
public boolean equals(Object obj){return (this == obj);}
注:Object类中定义的equals()和==作用相同
- String、Date、File、包装类等都重写了Object类中的equals()方法。重写后,比较的不是两个引用地址是否相同,而是比较两个对象的“实体内容”是否相同(String,Date等内部属性是否相同)
- 通常情况下,自定义的类,如果使用equals()的话,也通常比较的两个对象的“实体内容”是否相同;
就需要对object类中的equals()进行重写。
eg: String对equals() 重写的源码:
public boolean equals (Object anobject) {if (this == anobject) {return true ;}if (anobject instanceof String) {String anotherstring = (String) anobject;int n = value.length;if (n == anotherstring.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;while (n-- != 0 {if (v1[i] != v2[i])return false;i++;}return true;}}return false;
}
“ == “运算符与equals()方法的区别相关推荐
- 【Java常识】6.0面向对象认知和Eclipse的实用使用、==号和equals方法的区别
1.曾经写过很多自以为很通俗易懂的面向对象的解释. 如下是目前最通俗的一种解释: 2.Eclipse的补充解释. 运行的快捷键:F11. 3.Eclipse快捷键大全 大全放本文最后,这里主要放常用的 ...
- == 和 equals方法的区别
== 和 equals方法的区别[面试题] 一. == 是一个运算符,比较的是数据的关系,可以比较任意数据类型的数据 基本数据类型: 比较就是数据本身的大小关系 引用数据类型 : 比较的是对象的地址 ...
- JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能
JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...
- 处理对象(toString()方法详解和==与equals方法的区别)
处理对象(toString()方法详解和==与equals方法的区别) toString()是一个非常特殊的方法,它是一个自我描述的方法.当程序员直接打印该对象的时候,系统会输出该对象的"自 ...
- “==”和equals方法的区别
在平时写代码是经常使用 "==" 和 equsls ,去很少去想二者的的区别,现在来总结一下. 一.== "=="操作符专门用来比较两个变量的值是否相等,也就是 ...
- Java==与equals方法的区别
摘自:http://www.cnblogs.com/dolphin0520/p/3592500.html 1.对于==,如果作用于基本数据类型的变量,则直接比较其存储的 "值"是否 ...
- 自己手动重写的equals方法与自动生成重写的equals方法的区别
自己手动重写的equals方法会有一些漏洞,比如Man类继承自Person类,当姓名和年龄相同时就认为这两个对象是相同的,当我们用一个Person对象和Man对象去比较,这两个对象肯定应该是不同的,但 ...
- java 双等号(==) 与equals方法的使用区别
java 双等号(==) 与equals方法的区别 == 用于比较基本数据类型时,比较的是值 ==用于比较引用数据类型时,比较的是地址 equals方法在Object类中比较的也是地址,因为在低层也是 ...
- Java面试通关要点汇总集答案(七)——equals 与 == 的区别 List 和 Set 区别
一.equals 与 == 的区别 首先equals和== 最大的区别是一个是方法一个是运算符,在Java中,"=="和Object()类的equals比较的都是物理地址,而不是值 ...
最新文章
- PAT(甲级)2018年冬季考试 7-2 Decode Registration Card of PAT
- echarts 在.net 中和数据库交互
- hadoop-HA集群搭建,启动DataNode,检测启动状态,执行HDFS命令,启动YARN,HDFS权限配置,C++客户端编程,常见错误
- mysql 中 and和or 一起使用和之间的优先级
- UDP与TCP对比,TCP保证可靠性传输的详细说明
- Win-MASM64汇编语言-CMPXCHG指令
- 干货 | 深度学习模型超参数搜索实用指南
- plsql tables 没有表_技术分享 | 在磁盘上查找 MySQL 表的大小
- 设置linux中docker中的mysql开机自动启动
- NOI08冬令营 数据结构的提炼与压缩
- 【月径流预测】基于matlab人工生态系统算法优化BP神经网络月径流预测【含Matlab源码 2000期】
- 如何在桌面添加计算机日历工具,如何在电脑桌面上添加日历小工具?
- JavaEE高级框架学习笔记(八)Struts高级ActionForm
- HTTPS 免费证书,免费 ssl 证书,FreeSSL.org 申请多种免费证书
- JS代码转换d.ts语法
- FASTAPI接口服务
- awk oracle,工具: ass109.awk 分析 Oracle 的跟踪文件
- 找不到XMAP下载地址的进来
- Making FIFA Coins with FUT 14 Winter Upgrades
- 一文读懂测序技术在新冠病毒检测中的应用(文末附FAQ)