【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中Comparable接口和Comparator接口的区别(如果想知道Java中Comparable接口和Comparator接口的区别,那么只看这一篇就足够了!)
Java中Comparable接口和Comparator接口的区别(如果想知道Java中Comparable接口和Comparator接口的区别,那么只看这一篇就足够了!)
|
3天前
|
NoSQL Java Redis
如何在 Java 中操作这些 Redis 数据结构的基本方法
如何在 Java 中操作这些 Redis 数据结构的基本方法
9 2
|
4天前
|
安全 Java 开发者
【技术咖必看】Java异常处理新境界:throws关键字,打造万无一失的方法签名!
【6月更文挑战第19天】在Java异常处理中,`throws`关键字用于方法签名,声明可能抛出的异常,提示调用者必须处理。它区分运行时异常和检查型异常,常用于声明需要调用者捕获的检查型异常。例如,`readFile`方法`throws IOException`,强制调用者通过try-catch或同样`throws`。多异常声明允许一次声明多个可能的异常类型,增强代码健壮性。理解并善用`throws`能构建更稳定、可读的代码。
|
2天前
|
Java 对象存储
字节码学习之常见java语句的底层原理
字节码学习之常见java语句的底层原理
11 0
|
3天前
|
Java 程序员
java截取字符串的几种方法
java截取字符串的几种方法
|
3天前
|
安全 Java
JAVA反射调用方法
JAVA反射调用方法
|
4天前
|
Java 开发者
线程的诞生之路:Java多线程创建方法的抉择与智慧
【6月更文挑战第19天】Java多线程编程中,开发者可选择继承Thread类或实现Runnable接口。继承Thread直接但受限于单继承,适合简单场景;实现Runnable更灵活,支持代码复用,适用于如银行转账这类需多线程处理的复杂任务。在资源管理和任务执行控制上,Runnable接口通常更优。
|
1月前
|
存储 安全 Java
24、使用 Java 官方教程学习:① 类变量和类方法详解;② 深入介绍 main() 方法
24、使用 Java 官方教程学习:① 类变量和类方法详解;② 深入介绍 main() 方法
45 1
|
1月前
|
存储 Java
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
|
1月前
|
Java 测试技术 C++
【JAVA学习之路 | 进阶篇】File类及常用方法
【JAVA学习之路 | 进阶篇】File类及常用方法