分析Long和String类型中的equals比较方法

 时间:2024-10-12 21:46:18

1、编写测试代码,重现问题出现的过程。定义一个String字符串101,定义一个Long类型的101,然后使用equals比较两者是炯善挠勿否相同,使用syso输出比较结果。刚开始我想的是,这难道不是去比较值吗,还会考虑数据类型吗?^_^最后发现我错了。从输出结果可以看出两个比较都是输出的false,说明两者确实不相等。

分析Long和String类型中的equals比较方法

2、打开上面的equals方法,发现是调用的String类重写的equals方法:(有一个关键字instanceof,下面专门写个例子测试) 一:他是先看两个引用是否相同,剧安颌儿如果相同则表示两者完全是同一个东西没什么好说的。 二:如果两者不是同一个对象,则查看anObject是不是String类的对象,如果不是,则表示两者不等。 三:如果anObject是String类的对象,则比较亮着字符串是否相同。

分析Long和String类型中的equals比较方法

3、打开第二个equals方法,发现是调用的Long类重写的equals方法: 一:判断obj是否是Long类型 二:如果是:则直接比较两者的值是否相等

分析Long和String类型中的equals比较方法

4、从这里就可以看出,两者肯定不同,原因就是其数据类型不同。即有一个instanceof判断,instanceof的意思就是左边的对象是否是右边类的实例。当然这里面还隐含着一种特殊的情况,即左边的对象是右边类的子类的实例,也是成立的。且看测试代码

分析Long和String类型中的equals比较方法

5、测试这两种情况:①左边的对象是右边类的实例;②左边的对象是右边类的子类的实例。 (1)首先写一个类Father,再写一个类Son继承Father。 (2)编写测试类

分析Long和String类型中的equals比较方法

6、查看输出结果,两个true,也就证实了我上面所说的。instanceof操作符满足下面两种情况就是true:①左边的对象是右边类的实例;②左边的对象是右边类的子类的实例。

分析Long和String类型中的equals比较方法
  • java字符串截取的几种方法
  • IntelliJ IDEA 如何格式化代码
  • json文件怎么注释
  • mysql修改密码
  • IDEA 如何设置全局编码格式
  • 热门搜索
    中秋手抄报 文明校园手抄报图片 童心向党手抄报图 春节手抄报内容文字 清明节手抄报第一名 七夕节手抄报 饮食安全手抄报 春天的手抄报图片 我的中国梦手抄报 春节手抄报图片大全