java相等_Java 判断相等
1.除 float 和 double 外的原始数据类型 : 使用 ==
long a = (long) 1234567890;long b = (long) 1234567890;if (a ==b) {
System.out.println("基本数据类型相等");
}
2.包装类使用 equals 或者转换为基本数据类型再用 ==
Long a = (long) 1234567890;
Long b= (long) 1234567890;if (a != null &&a.equals(b)) {
System.out.println("包装类相等");
}if (a != null && a.longValue() ==b.longValue()) {
System.out.println("包装类相等");
}
3.对象要用 equals
String a1= null;
String b1= newString();if (a1 != null && a1.length() > 0 &&a1.equals(b1)) {
System.out.println("对象相等");
}
附录:
public static void main(String[] args) {
System.out.println("-----");
int a = 200;
int a2 = 200;
if (a == a2) {
System.out.println("相等");//√
}
System.out.println("-----");
Integer b = 200;
Integer b2 = 200;
if (b == b2) {
System.out.println("相等");//-128~127√
}
if (b.equals(b2)) {
System.out.println("相等2");//√
}
System.out.println("-----");
Integer c = new Integer(200);
Integer c2 = new Integer(200);
if (c == c2) {
System.out.println("相等");
}
if (c.equals(c2)) {
System.out.println("相等2");//√
}
System.out.println("-----");
if (a==c){
System.out.println("相等");//√
}
if (c.equals(a)){
System.out.println("相等2");//√
}
if (b==c){
System.out.println("相等3");
}
if (c.equals(b)){
System.out.println("相等4");//√
}
}
public static void main(String[] args) {
System.out.println("-----");
String a = "a";
String a2 = "a";
if (a == a2) {
System.out.println("相等");//√
}
if (a.equals(a2)) {
System.out.println("相等2");//√
}
System.out.println("-----");
String b = new String("a");
String b2 = new String("a");
if (b == b2) {
System.out.println("相等");
}
if (b.equals(b2)) {
System.out.println("相等2");//√
}
System.out.println("-----");
if (a == b) {
System.out.println("相等");
}
if (a.equals(b)) {
System.out.println("相等2");//√
}
}
public static void main(String[] args) {
System.out.println("-----");
boolean a = true;
boolean a2 = true;
if (a == a2) {
System.out.println("相等");//√
}
System.out.println("-----");
Boolean b = true;
Boolean b2 = true;
if (b == b2) {
System.out.println("相等");//√
}
if (b.equals(b2)) {
System.out.println("相等2");//√
}
System.out.println("-----");
Boolean c = new Boolean(true);
Boolean c2 = new Boolean(true);
if (c == c2) {
System.out.println("相等");
}
if (c.equals(c2)) {
System.out.println("相等2");//√
}
System.out.println("-----");
if (a == c) {
System.out.println("相等");//√
}
if (c.equals(a)) {
System.out.println("相等2");//√
}
if (b == c) {
System.out.println("相等3");
}
if (c.equals(b)) {
System.out.println("相等4");//√
}
}
超类 Object 中有这个 equals() 方法,该方法主要用于比较两个对象是否相等。该方法的源码如下:
public boolean equals(Object obj) {
return (this == obj);
}
我们知道所有的对象都拥有标识(内存地址)和状态(数据),同时“==”比较两个对象的的内存地址,所以说使用 Object 的 equals() 方法是比较两个对象的内存地址是否相等,即若 object1.equals(object2) 为 true,则表示 equals1 和 equals2 实际上是引用同一个对象。虽然有时候 Object 的 equals() 方法可以满足我们一些基本的要求,但是我们必须要清楚我们很大部分时间都是进行两个对象的比较,这个时候 Object 的 equals() 方法就不可以了,实际上 JDK 中,String、Math 等封装类都对 equals() 方法进行了重写。
在 Java 规范中,它对 equals() 方法的使用必须要遵循如下几个规则:
equals 方法在非空对象引用上实现相等关系:
1、自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
2、对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
3、传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
4、一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
5、对于任何非空引用值 x,x.equals(null) 都应返回 false。
对于上面几个规则,我们在使用的过程中最好遵守,否则会出现意想不到的错误。
在 java 中进行比较,我们需要根据比较的类型来选择合适的比较方式:
1) 对象域,使用 equals 方法 。
2) 类型安全的枚举,使用 equals 或== 。
3) 可能为 null 的对象域 : 使用 == 和 equals 。
4) 数组域 : 使用 Arrays.equals 。
5)除 float 和 double 外的原始数据类型 : 使用 == 。
6) float 类型: 使用 Float.foatToIntBits 转换成 int 类型,然后使用==。
7) double 类型: 使用 Double.doubleToLongBit 转换成 long 类型,然后使用==。
java相等_Java 判断相等相关推荐
- 素数判断的java方法_java判断数字是否是素数的方法
java判断数字是否是素数的方法 发布时间:2020-06-25 15:22:15 来源:亿速云 阅读:90 作者:Leah 本篇文章给大家分享的是有关java判断数字是否是素数的方法,小编觉得挺实用 ...
- java 百家姓_java判断姓是否合格 百家姓
java判断姓是否合格 百家姓 package util; import java.lang.reflect.Array; public class FirstName { public static ...
- java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字_灵思致远Leansmall的博客-CSDN博客_java判断字符串只包含数字字母
import java.util.regex.Matcher; import java.util.regex.Pattern;public class StrValidate {// 纯数字priva ...
- java根据时间判断星期几_java怎么根据日期判断是星期几
java怎么根据日期判断是星期几 发布时间:2020-06-23 09:31:18 来源:亿速云 阅读:112 作者:Leah 这篇文章将为大家详细讲解有关java怎么根据日期判断是星期几,小编觉得挺 ...
- java 回车判断_java 判断输入回车符
java 判断输入回车符 [2021-01-31 09:05:13] 简介: 判断php是否安装成功的方法:首先在php安装路径下创建phpinfo.php文件:然后打开浏览器,在网址输入栏中输入[ ...
- java if判断是否为空_java 判断对象是否为空
java 中如何判断一个未知对象是否为空呢? 下面是一个通用的方法,判断字符串是否为空,集合是否为空,数组是否为空: /** * 判断对象或对象数组中每一个对象是否为空: 对象为null,字符序列长度 ...
- java判断空对象为空_Java判断对象是否为空(包括null ,)的方法
本文实例为大家分享了Java判断对象是否为空的具体代码,供大家参考,具体内容如下 package com.gj5u.publics.util; import java.util.List; /** * ...
- java map怎么判断为空_java中如何判断map是否为空
java中判断map是否为空的方法是:利用isEmpty()函数来判断. (推荐学习:java入门程序) 函数介绍: IsEmpty()是Java中用于判断某种容器是否有元素的系统库函数.如用来判断A ...
- java 时间段重叠_Java判断多个时间段是否重叠(重叠区间个数)
import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * 判断多个时间段是否出现重叠 ...
最新文章
- 机房设备与线路资源管理
- Android 换肤
- 【深度学习入门到精通系列】Recurrent和Residual解释
- python导出csv不带引号的句子_不带双引号写入CSV文件
- 听歌是怀念过去 - 潇洒的走
- python学习-异常(异常类型,异常处理、自定义异常)
- 还有更多REST技巧
- PostgreSQL9.6+PostGIS2.3学习笔记(一)导入shp文件
- 使用内存数据库的.NET Core 3.0中基于身份(Identity-Based)的身份验证
- android九宫格切图,拼图九宫格切图app
- MATLAB2014a的安装
- SIGHUP信号相关
- (玩转zabbix)硬盘硬件健康状态监控,部件寿命监控
- ftp工具 绿色,细数3款绿色 ftp工具
- 利用zxing生成二维码
- 关于GoldWave给Vegas视频添加音频叠加的教程分享
- 华为诺亚方舟实验室招聘AI研究实习生
- 【蓝桥杯国赛真题20】Scratch纸牌对对碰 青少年组 scratch蓝桥杯国赛真题和答案讲解
- 福大软工1816 - 404 Note Found选题报告
- 用heapster实现HPA
热门文章
- 带父节点的平衡二叉树_深入理解(二叉树、平衡二叉树、B-Tree、B+Tree )的区别
- 中富之命能有多少钱_邯郸白铁风管工每天工资多少钱?白铁风管价格多少钱你能接受?...
- Matlab画图技巧之保存超大体积图
- linux 检测mysql链接_MySQL笔记
- TensorFlow实现简单的卷积网络
- OpenCV可移植图形工具HighGUI实现图像和视频操作
- 给你的Linux把把脉(内存、磁盘、CPU、网络)
- 用 Python 和 werobot 框架开发公众号
- C++ 基本数据类型 的 字节数
- 记录遇到的Python陷阱和注意点