首先了解默认equals方法实现代码

public boolean equals(Object obj) {
return (this == obj);
}

1.==

(1)对于基本数据类型的变量,"=="的作用是判断左右两边的值是否相等

public class HelloWorld {
public int HW=10;
public static void main(String[] args)
{
int a=10;
int b=10;
System.out.println(a==b); //ture
}
}

(2)对于引用类型的变量,"=="的作用是判断左右两边所指向的地址是否一样

public class HelloWorld {
public int HW=10;
public static void main(String[] args)
{
HelloWorld a=new HelloWorld();
HelloWorld b=new HelloWorld();
System.out.println(a==b); //false
}
}

2.equals()

(1)根据equals()的实现代码可知equals()不适用于基本数据类型之间,对于引用类型的变量则和"=="结果相同

public class HelloWorld {
public int HW=10;
public static void main(String[] args)
{
HelloWorld a=new HelloWorld();
HelloWorld b=new HelloWorld();
System.out.println(a.equals(b)); //false
}
}

(2)如果对equals()方法进行了重写,那么就是对比值是否相等。

public class HelloWorld {
public int HW=10;
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
HelloWorld other = (HelloWorld) obj;
if (HW != other.HW)
return false;
return true;
}
public static void main(String[] args)
{
HelloWorld a=new HelloWorld();
HelloWorld b=new HelloWorld();
System.out.println(a.equals(b)); //true
}
}

ps: 我使用的是eclipse提供的重写。

Java ==和equals的区别的更多相关文章

  1. java里 equals和== 区别

    1.java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中.2.==操作比较的是两个变量的值是否相等,对于引 ...

  2. java中equals和==区别

    equals 方法是 java.lang.Object 类的方法. 有两种用法说明: (1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同. “==”比较两个变 ...

  3. Java中equals()和“==”区别

    1.对于基础数据类型,使用“=="比较值是否相等: 2.对于复合数据类型(类),使用equals()和“==”效果是一样的,两者比较的都是对象在内存中的存放地址(确切的说,是堆内存地址). ...

  4. java中 equals和==区别

    一.java当中的数据类型和“==”的含义: 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean.他们之间的比较,应用双等号 ...

  5. Java == 和 equals的区别

    == 是操作符,equals是方法. 对于基本类型变量来说,只能使用 == ,因为基本类型的变量没有方法.使用==比较是值比较. 对于引用类型的变量来说,==比较的两个引用对象的地址是否相等.所有类都 ...

  6. java代码----equals和==区别

    总结: ==的意义在于比较的是整型 package com.aa; // public class Bd { public static void main(String[] args) { Inte ...

  7. Java == 和 equals 的区别(面试描述)

    == == 是一个比较运算符 既可以判断基本类型,又可以判断引用类型 如果判断基本数据类型,判断的是值是否相等 如果判断的是引用类型,判断的是地址是否相等,判断是不是同一个对象 equals equa ...

  8. Java中equals与==和comparaTo的区别

    一.先说说Java中equals和==的区别: Java中的数据类型,可分为两类: 1.基本数据类型(也叫原始数据类型) 八大基本数据类型 char byte short int long doubl ...

  9. Java学习笔记——双等号和equals的区别

    一.==和equals的区别 1. ==可以用来比较基本类型和引用类型,判断内容和内存地址 2. equals只能用来比较引用类型,它只判断内容.该函数存在于老祖宗类 java.lang.Object ...

随机推荐

  1. Redis Guide

    1. Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合,位图,hyperloglogs等数 ...

  2. System.arraycopy() 数组复制方法

    一.深度复制和浅度复制的区别    Java数组的复制操作可以分为深度复制和浅度复制,简单来说深度复制,可以将对象的值和对象的内容复制;浅复制是指对对象引用的复制. 二.System.arraycop ...

  3. Qt在控制台输出中文的解决办法(转载)

    转载网址:https://blog.csdn.net/qq_22512533/article/details/75408984 按下快捷键Win+R,输入regedit打开注册变编辑器,依次找到 HK ...

  4. Spring Boot Lombok配置

    Spring Boot Lombok配置 依赖添加 dependencies { annotationProcessor 'org.projectlombok:lombok:1.18.2' compi ...

  5. 安装glance

    在控制节点上执行 controllerHost='controller' MYSQL_PASSWD='m4r!adbOP' GLANCE_PASSWD='glance1234!' 1.创建数据库 my ...

  6. C++学习笔记-异常处理

    程序设计的要求之一就是程序的健壮性.希望程序在运行时能够不出或者少出问题.但是,在程序的实际运行时,总会有一些因素会导致程序不能正常运行.异常处理(Exception Handling)就是要提出或者 ...

  7. 【Python】【demo实验7】【练习实例】【完全平方数相关】

    题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. ...

  8. 内网和wifi同时存在

    1.注意都要用管理员身份运行 2.将以下代码编写为.bat文件,然后以管理员身份运行此文件 route delete 0.0.0.0 route delete 10.10.0.0 route dele ...

  9. plsql软件使用手册

    记录登陆密码及用户名

  10. Linux Pycharm 添加图标到root账户桌面

    1. 去官网下载pycharm程序 2. 解压缩下载到的tar包 3. 在/usr/share/applications目录下新建一个pycharm.desktop, 写入内容如下, 注意红色字体需要 ...