【JAVA学习之路 | 基础篇】==与equals方法的区别

简介: 【JAVA学习之路 | 基础篇】==与equals方法的区别

1.Object中equals方法的底层实现

  • 除Object类外的任何类都直接或间接继承于根父类Object类,如果继承于Object类的子类未重写Object的equals方法,那么我们调用equals方法则是Object类中的equals().
Object类中的equals方法
public boolean equals(Object obj) {
        return (this == obj);
    }
  • 可以看到,Object类中的equals方法的底层是通过==来实现的.

2.==与equals()的相同与不同

(1). 基本数据类型(如int) : 可以用==判断,二者的数值是否相等

int a = 3;

int b = 3;

System.out.println(a == b);//打印true

(2). 引用数据类型(如String) : 可以用==判断,二者是否引用同一对象.

String a = new String("小明");

String b = new String("小明");

System.out.println(a == b);//打印false,因为a, b变量引用不同的对象

(3). 因为equals是方法,基本数据类型变量并不是对象,所以不能调用equals方法.

(4). 对于引用数据类型来说,由于equals()的底层是用=等于来实现的,所以并无不同.

相关文章
|
2天前
|
Java
Java中的内置锁synchronized关键字和wait()、notifyAll()方法
【6月更文挑战第17天】Java的synchronized和wait/notify实现顺序打印ALI:共享volatile变量`count`,三个线程分别检查`count`值,匹配时打印并减1,未匹配时等待。每个`print`方法加锁,确保互斥访问。代码示例展示了线程同步机制。考虑异常处理及实际场景的扩展需求。
33 3
|
1天前
|
Java 大数据 API
|
2天前
|
Java
在 Java 中,类是一种定义对象的模板,它包含数据成员(字段)和方法。
在 Java 中,类是一种定义对象的模板,它包含数据成员(字段)和方法。
|
2天前
|
Java
Java编程不再难:一文看懂抽象类与接口的区别和联系!
【6月更文挑战第17天】在Java OOP中,抽象类与接口助你构建复杂应用。以图书管理系统为例,抽象类`Book`作为基类提供共享属性和方法,不直接实例化。接口如`HasChapters`和`HasIssues`定义特殊行为。抽象类支持部分实现,单继承,适合共享行为;接口仅含常量和抽象方法,多实现,强调行为规范。通过继承和实现,实现代码复用和系统扩展性。理解两者异同,是提升Java编程能力的关键。
|
4天前
|
Arthas 存储 监控
性能监控之常见 Java Heap Dump 方法
【6月更文挑战8天】性能监控之常见 Java Heap Dump 方法
26 7
|
5天前
|
存储 安全 Java
深入理解Java中的ThreadLocal机制:原理、方法与使用场景解析
深入理解Java中的ThreadLocal机制:原理、方法与使用场景解析
18 2
|
6天前
|
Java C++
Java和C++的一些区别
Java和C++的一些区别
|
6天前
|
Java
JAVA高级部分学习小结(2023.11.4)
JAVA高级部分学习小结(2023.11.4)
|
6天前
|
Java
Java读取txt文件和写入txt文件-多种方法-java读写文件-java读写
Java读取txt文件和写入txt文件-多种方法-java读写文件-java读写
39 0
|
9月前
|
Java
JAVA方法的定义
JAVA方法的定义
45 0