欢迎光临散文网 会员登陆 & 注册

java equals和==的区别

2023-06-27 18:33 作者:技术至上  | 我要投稿

在Java中,"=="和"equals()"是用于比较对象的两种不同方式。

"=="运算符:

"=="是一个比较运算符,用于比较两个对象的引用是否相等。它比较的是对象的内存地址,即判断两个对象是否引用同一块内存。当使用"=="比较两个对象时,它会返回以下结果:

  • 如果两个对象的引用相同(指向同一块内存),则返回true。

  • 如果两个对象的引用不同(指向不同的内存),则返回false。

示例代码:

javaCopy code

String str1 = "Hello";String str2 = "Hello";String str3 = new String("Hello"); System.out.println(str1 == str2); // 输出true,因为str1和str2引用同一块内存System.out.println(str1 == str3); // 输出false,因为str1和str3引用不同的内存

"equals()"方法:

"equals()"是一个方法,用于比较两个对象的内容是否相等。它是一个被Object类定义的方法,在Java中的许多类(如String、Integer等)都重写了该方法,以实现自定义的相等比较逻辑。当使用"equals()"比较两个对象时,它会返回以下结果:

  • 如果两个对象的内容相等,则返回true。

  • 如果两个对象的内容不相等,则返回false。

示例代码:

javaCopy code

String str1 = "Hello";String str2 = "Hello";String str3 = new String("Hello"); System.out.println(str1.equals(str2)); // 输出true,因为str1和str2的内容相等System.out.println(str1.equals(str3)); // 输出true,因为str1和str3的内容相等

需要注意的是,默认情况下,Object类的"equals()"方法是使用"=="运算符来进行比较的,因此它与"=="运算符的结果相同。但是,许多类会根据自身的需求重写"equals()"方法,实现自定义的比较逻辑,比如String类会比较字符串的内容而不是引用。因此,在使用"equals()"方法比较对象时,我们需要关注具体类对该方法的重写实现。

总结起来,"=="比较的是两个对象的引用是否相同,而"equals()"比较的是两个对象的内容是否相等。对于引用类型的对象,我们通常使用"equals()"方法来判断它们的内容是否相等。


java equals和==的区别的评论 (共 条)

分享到微博请遵守国家法律