chia源码解析,源代码深度解析

equals()和==到底有什么区别啊?

功能不同 ==是判断两个变量或实例是不是指向同一个内存空间。equals是判断两个变量或实例所指向的内存空间的值是不是相同。定义不同 equals在Java中是一个方法。==在java中只是一个运算符合。

在Java编程语言中,“=”、“==”和“.equals”是三个用于比较操作符号,但它们各自的功能和使用场景有所不同。“=”是一个赋值运算符,它的作用是将右值赋给左值。例如,当我们写“int a = 5;”,这里的“=”就是将5的值赋给变量a。

含义不同:==是一个比较运算符,基本数据类型比较的是值,引用数据类型比较的是地址值。(比较地址值即是指是否为同一个对象的引用)equals()是一个方法,只能比较引用数据类型。重写前比较的是地址值,重写后比一般是比较对象的属性

.equals() 在Java中判断是否相等,与 == 的区别是 .equals() 只判断值是否相等,不管两者是否存在同一地址。

chia源码解析,源代码深度解析

本文旨在阐述Java语言中equals与==的区别。equals是方法,而==是关系运算符,两者虽然有时结果相同,但概念原理迥异。想象A房间与B房间,同楼层不同位置,但内部布局一致。使用==比较,两者并非相同房间,因其位置不同。而equals默认比较,同样认为非相同房间,基于默认比较方式

==是比较引用地址。equals是根据方法内定义的规则比较是否“相等”。如String的equals比较的是内容,Long比较的是数值。

关键词: