菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
410
0

==和equals的区别

原创
05/13 14:22
阅读数 32115

一、理解”==“的含义

在java中,主要有两个作用。

1、基础数据类型:比较的是他们的值是否相等,比如两个int类型的变量,比较的是变量的值是否一样。

2、引用数据类型:比较的是引用的地址是否相同,比如说新建了两个User对象,比较的是两个User的地址是否一样。

OK。

注意 你会发现,引用的例子中,使用的是User对象,而不是String

 

String

1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。

  “==”比较两个变量本身的地址值,即两个对象在内存中的首地址。

  “equals()”比较字符串中所包含的内容是否相同。

比如:

String s1,s2,s3 = "abc", s4 ="abc" ;

s1 = new String("abc");

s2 = new String("abc");

那么:

s1==s2 是 false      //两个变量的内存地址不一样,也就是说它们指向的对象不 一样,故不相等。

s1.equals(s2) 是 true     //两个变量的所包含的内容是abc,故相等。

注意(1):

如果:          StringBuffer s1 = new StringBuffer("a");
                   StringBuffer s2 = new StringBuffer("a");
结果:          s1.equals(s2) //是false

解释:StringBuffer类中没有重新定义equals这个方法,因此这个方法就来自Object类,而Object类中的equals方法是用来比较“地址”的,所以等于false.

 

相关热门文章

发表评论

0/200
410 点赞
0 评论
收藏