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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Hawking 中级黑马   /  2016-4-7 22:44  /  259 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

自己总结一下:
1,equal
           对于object类(或继承object类,但无实现自定义equal),是比较对象的类型的,除非同一对象,都不相等。

            对于基本类型(如int)不能使用equal。

          对于基本类型的封装类,equal是比较其类型

           对于继承object类的,又实现了自定义equal(重写其equal),则是按自定义的equal执行,一般重写的就是重写成对其内容进行比较。一般api中继承object的类都已重写equal对内容进行比较。
    int a = 3;
   Integer d=3;
   System.out.println(d.equals(a));    //true,因为其内容是相等的
   System.out.println(a.equals(d));   //报错,因为基本类型int a没有equal这个方法
2,==

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


二次总结
  1.“==”比较两个变量本身的值,即两个对象在内存中的首地址。
    “equals()”比较字符串中所包含的内容是否相同。(StringBuffer 和StringBuilder特殊,==和equal都是比较地址)

                StringBuilder ww = new StringBuilder("111");
StringBuilder qq = new StringBuilder("111");

System.out.println(ww == qq); // false
System.out.println(ww.equals(qq))  // false

2.基本数据类型:boolean、char、byte、shot、int、long、float、double等没有equal方法

3.对于String ,基本类型的包装类型Boolean、Character、Byte、Shot、Integer、Long、Float、Double,适用1即==表比较地址,equal表示比较内容

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马