Java中==和equals的区别

简介: Java中==和equals的区别

1 问题

在Java中,equals是在object类中的方法,在object中equals是用来看看两个参数是否引用的是同一个对象,而 == 可用于判断两个对象的地址是否相等,那么equals和 == 有什么区别?


2 方法

首先,对于基本类型变量(如int, float)来说,equals和 == 的作用是相同的。例如:int m = 3;int n = 3;m==n的结果是true;equals(a)的结果也为true。

第二,对于字符串来说。字符串是一个引用数据类型,对于引用数据类型来说,"=="比较的是两个对象在内存中的地址,"equals"比较的是两个对象的内容。例如:

其运行结果为:

(1)str==str1的结果为true,说明str与str1的引用对象是相同

(2)str.equals(str1)的结果是true,说明两者的内容相同。

若比较str与str2:

其结果为:

(3)str==str2的结果是false;str.equals(str2)的结果是true。那就是说明str与str1引用对象不同,内容相同。


3 结语

针对Java中,equals和==的区别的问题,提出在相同的条件下,比较用equals和==运行的结果的不同,通过实验可以看出,在基本类型变量条件下,equals和==的作用相同,而在字符串类型下,程序运行的时候,它会创建一个字符串缓冲池用以存放字符串变量。当你声明一个字符串变量时,程序会首先检查缓冲池中是否已有相同值的对象。如有,则直接返回这个对象的地址;若没有,则创建一个对象并将其放入缓冲池,然后再返回地址。而(2)之所以与(3)不同,是因为创建时使用了new操作符;明确的表明了想要新创建一个对象。因此str与str2的内容虽相同,但对象却不同。


目录
相关文章
|
2天前
|
存储 Java C++
java中“==”和equals,究竟比的是什么
java中“==”和equals,究竟比的是什么
13 3
java中“==”和equals,究竟比的是什么
|
8天前
|
Java
java基础(4)public class 和class的区别及注意事项
本文讲解了Java中`public class`与`class`的区别和注意事项。一个Java源文件中只能有一个`public class`,并且`public class`的类名必须与文件名相同。此外,可以有多个非`public`类。每个类都可以包含一个`main`方法,作为程序的入口点。文章还强调了编译Java文件生成`.class`文件的过程,以及如何使用`java`命令运行编译后的类。
15 3
java基础(4)public class 和class的区别及注意事项
|
3天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
13 4
ly~
|
6天前
|
安全 Java 大数据
php跟java有什么区别
PHP 和 Java 是两种常用编程语言,各有特色。PHP 语法简洁灵活,适用于快速开发中小型网站,尤其在 Web 脚本和数据库交互中表现出色。Java 则语法严谨,强类型特性使其在企业级应用、移动开发及大数据处理中更受欢迎,具备高稳定性和安全性。通过优化,PHP 性能可提升,而 Java 在大规模应用中表现更佳。总体而言,PHP 开发效率高但维护性稍差,Java 则更注重代码质量和安全性。
ly~
15 5
|
13天前
|
Java 大数据 API
Java 流(Stream)、文件(File)和IO的区别
Java中的流(Stream)、文件(File)和输入/输出(I/O)是处理数据的关键概念。`File`类用于基本文件操作,如创建、删除和检查文件;流则提供了数据读写的抽象机制,适用于文件、内存和网络等多种数据源;I/O涵盖更广泛的输入输出操作,包括文件I/O、网络通信等,并支持异常处理和缓冲等功能。实际开发中,这三者常结合使用,以实现高效的数据处理。例如,`File`用于管理文件路径,`Stream`用于读写数据,I/O则处理复杂的输入输出需求。
|
17天前
|
机器学习/深度学习 人工智能 安全
python和Java的区别以及特性
Python:适合快速开发、易于维护、学习成本低、灵活高效。如果你需要快速上手,写脚本、数据处理、做点机器学习,Python就是你的首选。 Java:适合大型项目、企业级应用,性能要求较高的场景。它类型安全、跨平台能力强,而且有丰富的生态,适合更复杂和规模化的开发。
18 3
|
2月前
|
XML JSON 前端开发
Java @RequestParam和@RequestBody的区别是什么?
【8月更文挑战第28天】Java @RequestParam和@RequestBody的区别是什么?
33 5
|
2月前
|
Java
Java 中 notify() 和 notifyAll() 的区别
【8月更文挑战第22天】
49 4
|
2月前
|
Java
下一篇
无影云桌面