A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

虽然到现在,我会去使用,但是具体的底部原理还是没有弄明白?equals我认为比较就是它的内容是不是一样即可。而==不仅比内容还要比地址。不知道是不是这样判断的?
equals和instanceOf它们的底部也不清楚,也只知道如何使用。希望知道的能回答。

6 个回复

倒序浏览
kikt 发表于 2015-6-3 10:15
equals方法每个类都不一样吧,而且很多类有自己独有的Equals方法,而instanceof底层应该是通过反射来实现的 ...

哦,原来如此。受教啦!
回复 使用道具 举报
看代码1:
String s1 = "hello";
String s2 = "hello";
结果
s1 == s2为true,
解释
s1 与 s2 引用同一个 String 对象 。
看代码2:
String s1 = "hello";
String s2 = new String("hello");
结果
s1 equals s2为true,解释
s1 s2分别引用了两个"hello"String对象,new 操作符,表示新的Sting对象被创建在内存中



==:等于
如果进行被比较的两个操作数都是数值类型,也就是8种基本数据变量之一,即使他们的数据类型不一样,
只要值相同,就返回true,如97==‘a’返回true,5.0=5,返回true。
如果操作的数是引用类型,或者也叫复核数据类型,那么只有当两个引用变量引用相同的类的实例的时候才可以比较,
而且两个引用必须指向同一个对象才会返回true。
回复 使用道具 举报
wuyusi 来自手机 中级黑马 2015-6-3 11:43:39
板凳
看评论学习学习
回复 使用道具 举报
zhangkai986745 发表于 2015-6-3 11:54
==比较的是具体的值,equals比较的是内存中的地址值,只要明白这个不变的原理就不会混淆了 ...

搞反了吧
回复 使用道具 举报
恩  ,分引用类型和基本数据类型,板凳那楼说的不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马