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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© CrazyProgram 中级黑马   /  2013-4-8 23:00  /  1813 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 CrazyProgram 于 2013-4-9 10:21 编辑

instanceof 是对象比较的时候用的么?
equals是数据类型比较时候才用的么?
老是分不清,想搞清楚点

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

7 个回复

倒序浏览
1、instanceof:用法:
int  boolean  是值数据类型      而instanceof  只能 用于 对象 类型
  例如
正确:
Integer i;
      if(i instanceof Integer)
         System.out.println("i 是 Integer类型");
错误:
  int i;
    if(i instanceof int)
       System.out.println("i 是 int类型");

2、equals()方法是从object类中继承过来的。

equals()方法在object类中定义如下:

public boolean equals(Object obj) {

return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。当String 、Math、还有Integer、Double。。。。等这些封装类在使用equals()方法时,已经覆盖了object类的equals()方法。是进行的内容比较,而已经不再是地址的比较。依次类推Double、Integer、Math。。。。等等这些类都是重写了equals()方法的,从而进行的是内容的比较。


评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
instanceof 可以理解为判断你是否是我其中的一个.
equals比较的是地址值中的内容是否相同.

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 HM刘俊 于 2013-4-9 00:14 编辑

把概念记好就容易分辨了。
instanceof关键字
  A:用于判断某个对象是否是某种类型。
  B:格式
   对象名 instanceof 子类(实现)名
equals只能用于比较引用数据类型的。
  Object提供的equals是用于比较对象地址值是否相同。
   

基础总结大全.rar

90.32 KB, 下载次数: 125

自己有时间记住

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
intanceof用于判断是不是某个类的实例
equal用于判断值是不是相等
回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
嗯,好的,非常感谢
回复 使用道具 举报
arthur 发表于 2013-4-8 23:24
instanceof 可以理解为判断你是否是我其中的一个.
equals比较的是地址值中的内容是否相同. ...


instanceof 是判断 你 是否 是人类 的一员。不应该理解为 某个人是你的一员吧?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马