1.首先我们看看Object类中的equals方法

public boolean equals(Object obj) {return (this == obj);}

我们可以看出Object类中判断的是否是同一个对象,我们接下来来看看下面这个例子

Employee emp1 = new Employee("张三", 5000, 2005, 5 ,5);
Employee emp2 = new Employee("张三", 5000, 2005, 5 ,5);
System.out.println(emp2.equals(emp1));

这里停下来思考一下会输出什么呢?

这里我相信很多像我一样的初学者认为会输出true。但是答案却是false,为什么呢?我们在看看方法体里唯一的一句代码

        return (this == obj);

this==obj具体的是代表什么呢?其实这里是判断this跟obj的地址是否相等,也就是判断在堆里是否是同一个对象。

其实很容易就能看出栈里了emp1和emp2里存放的地址并不是一样的,所以自然输出false。

2.接着我们看看String类中的equals方法

public boolean equals(Object anObject) {//判断是否同一个对象if (this == anObject) {return true;}//判断anObject 是否是String的实例对象//如果是的话判断两个String对象的长度是否相等//如果相等再判断每一个字符是否相等if (anObject instanceof String) {String anotherString = (String)anObject;int n = value.length;if (n == anotherString.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;while (n-- != 0) {if (v1[i] != v2[i])return false;i++;}return true;}}return false;}

String类中的equals方法主要做的是两个东西,第一个跟Object里的equals方法一样,判断是否是同一个对象。如果不是同一个对象,那么再判断长度是否相等,再判断判断每一个字符是否相等。

String类中的equals方法与Object类中的equals方法的不同点相关推荐

  1. java string date_Java基础教程:Java之Object类,Objects类,Date类概念及使用!

    Object类概述 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指 ...

  2. java中object类怎么赋值_Java面向对象之Object类

    一.继承体系的老祖宗是Object类.(Object类是所有类的父类) 当我们不希望在程序中某些类被继承,某些方法被重写,某些数据被修订.就是final关键字闪亮登场的时候了. 一个类没有使用exte ...

  3. 下面属于java的object_在JAVA中,下列哪些是Object类的方法()

    1.clone方法 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常. 主要是JAVA里除了8种基本类型传 ...

  4. JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能

    JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...

  5. 重写Java Object类中的equals()方法

    Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...

  6. 【Java5】String类,StringBuilder类,ArrayList类,Object类(toString,equals,hashCode)

    文章目录 1.String类:字符串常量在Java中不属于基本数据类型, 而是引用/类类型 1.1 使用:new String(...) 1.2 判断:equals函数是用来比较两个对象是否相等 1. ...

  7. Object类中的五种方法

    clone() Object类源码:protected native Object clone() throws CloneNotSupportedException; 这里有个问题:为什么Sun公司 ...

  8. Java基础Object类的equals方法

    关于Object类中的equals方法 1.equals方法的源代码 public boolean equals(Object obj) {return (this == obj);}以上这个方法是O ...

  9. java object 方法_Java中Object类常用的12个方法,你用过几个?

    前言 Java 中的 Object 方法在面试中是一个非常高频的点,毕竟 Object 是所有类的"老祖宗".Java 中所有的类都有一个共同的祖先 Object 类,子类都会继承 ...

最新文章

  1. c# 中如何定义和接收消息
  2. 配置密码分布式集群环境hadoop、hbase、zookeeper搭建(全)
  3. 【中级软考】结构化开发方法是啥,主要包含哪些内容?
  4. Android的Intent Action 大全
  5. android 弹出PopupWindow后背景逐渐变暗
  6. Solidity 中 revert(), assert() 和 require() 的使用方法
  7. elementui的横向滚动_记一次element-ui配置化table组件的适应性问题(横向滚动条)...
  8. ace自定义在线编辑器方法及提示
  9. appium环境搭建android版,【appium】自动化测试appium教程(环境搭建上)
  10. 口诀计算机,PID算法的通俗讲解及调节口诀[计算机类]
  11. 土地数据合集-土地出让数据2020版Globe30土地覆盖数据
  12. linux下如何查看hdmi设备,如何在Linux中设置HDMI数字播放 | MOS86
  13. 使用MobileViT替换YOLOv5主干网络
  14. C++实现Socket连接通信
  15. 电阻、电感、电容元件的交流电路
  16. RGB与16进制颜色值互相转换
  17. 地图编辑器开发(五)
  18. php printer_open 用法_php程序怎么调用打印机
  19. C3的translate3d代替js动画
  20. 移动GPU:高通Adreno图形处理器全解析

热门文章

  1. 【9704】【9109】麦森数
  2. SpringMVC之Http标准的头部信息
  3. [BZOJ3998][TJOI2015]弦论
  4. 自己写的一个复杂查询
  5. U3D包大小优化之microlib
  6. SQL SERVER 导入EXCEL的存储过程
  7. Laravel - Artisan 个人常用总结
  8. 互联网产品接入支付功能如何测试?
  9. 安卓勒索软件进一步扩散
  10. 疑惑即新知——记一次reverse模板实现过程