首先了解默认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. Springboot学习—CommandLineRunner接口(转载)

    前言 Spring boot的CommandLineRunner接口主要用于实现在应用初始化后,去执行一段代码块逻辑,这段初始化代码在整个应用生命周期内只会执行一次. 如何使用CommandLineR ...

  2. Centos7 FastDFS 搭建

    安装libfastcommon 首先第一步是安装libfastcommon,我这里将libfastcommon上传到的/opt目录下,直接解压: yum -y install gcc-c++ yum ...

  3. tcp协议相关概念

    conv 会话IDmtu 最大传输单元mss 最大分片大小state 连接状态(0xFFFFFFFF表示断开连接)snd_una 第一个未确认的包snd_nxt 待发送包的序号rcv_nxt 待接收消 ...

  4. 修改主机名(/etc/hostname和/etc/hosts区别)

    ubuntu永久修改主机名 1.查看主机名 在Ubuntu系统中,快速查看主机名有多种方法:其一,打开一个GNOME终端窗口,在命令提示符中可以看到主机名,主机名通常位于“@”符号后:其二,在终端窗口 ...

  5. vue路由传参的几种基本方式

    原文地址 this.$router.push跳转 现有如下场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取数据.父组件中: <li v-for="article i ...

  6. LeetCode.1184-公交车站之间的距离(Distance Between Bus Stops)

    这是小川的第次更新,第篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第265题(顺位题号是1184).公交车有n个从0到n-1的车站,形成一个圆圈.我们知道所有相邻车站对之间的 ...

  7. dfs -cogs 5 P服务点设置

    题目链接:http://cogs.pro:8081/cogs/problem/problem.php?pid=FSXJmiJSg   问题描述为了进一步普及九年义务教育,政府要在某乡镇建立P所希望小学 ...

  8. matlab作业之m文件的建立与使用运行

    画曲线y=xsin(ex-x),要求编写m文件,qx1.m,要求有标注 实现方法: 打开matlab,点击左上角新建 然后打开编辑器 在编辑器里输入函数语句 ctrl+s保存,这里的名字要命名成××× ...

  9. SpringCloud学习(一)服务的注册与发现Eureka(Finchley版本)

    创建服务注册中心 在这里,我还是采用Eureka作为服务注册与发现的组件. 首先创建一个空项目 首先创建一个空项目,再创建一个maven项目,首先创建一个主Maven工程,在其pom文件引入依赖,sp ...

  10. Nginx的一些常用配置

    #定义Nginx运行的用户和用户组 #user nobody; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 1; #全局错误日志定义类型,[ debug | ...