String类中的equals方法与Object类中的equals方法的不同点
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方法的不同点相关推荐
- java string date_Java基础教程:Java之Object类,Objects类,Date类概念及使用!
Object类概述 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指 ...
- java中object类怎么赋值_Java面向对象之Object类
一.继承体系的老祖宗是Object类.(Object类是所有类的父类) 当我们不希望在程序中某些类被继承,某些方法被重写,某些数据被修订.就是final关键字闪亮登场的时候了. 一个类没有使用exte ...
- 下面属于java的object_在JAVA中,下列哪些是Object类的方法()
1.clone方法 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常. 主要是JAVA里除了8种基本类型传 ...
- JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能
JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...
- 重写Java Object类中的equals()方法
Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...
- 【Java5】String类,StringBuilder类,ArrayList类,Object类(toString,equals,hashCode)
文章目录 1.String类:字符串常量在Java中不属于基本数据类型, 而是引用/类类型 1.1 使用:new String(...) 1.2 判断:equals函数是用来比较两个对象是否相等 1. ...
- Object类中的五种方法
clone() Object类源码:protected native Object clone() throws CloneNotSupportedException; 这里有个问题:为什么Sun公司 ...
- Java基础Object类的equals方法
关于Object类中的equals方法 1.equals方法的源代码 public boolean equals(Object obj) {return (this == obj);}以上这个方法是O ...
- java object 方法_Java中Object类常用的12个方法,你用过几个?
前言 Java 中的 Object 方法在面试中是一个非常高频的点,毕竟 Object 是所有类的"老祖宗".Java 中所有的类都有一个共同的祖先 Object 类,子类都会继承 ...
最新文章
- c# 中如何定义和接收消息
- 配置密码分布式集群环境hadoop、hbase、zookeeper搭建(全)
- 【中级软考】结构化开发方法是啥,主要包含哪些内容?
- Android的Intent Action 大全
- android 弹出PopupWindow后背景逐渐变暗
- Solidity 中 revert(), assert() 和 require() 的使用方法
- elementui的横向滚动_记一次element-ui配置化table组件的适应性问题(横向滚动条)...
- ace自定义在线编辑器方法及提示
- appium环境搭建android版,【appium】自动化测试appium教程(环境搭建上)
- 口诀计算机,PID算法的通俗讲解及调节口诀[计算机类]
- 土地数据合集-土地出让数据2020版Globe30土地覆盖数据
- linux下如何查看hdmi设备,如何在Linux中设置HDMI数字播放 | MOS86
- 使用MobileViT替换YOLOv5主干网络
- C++实现Socket连接通信
- 电阻、电感、电容元件的交流电路
- RGB与16进制颜色值互相转换
- 地图编辑器开发(五)
- php printer_open 用法_php程序怎么调用打印机
- C3的translate3d代替js动画
- 移动GPU:高通Adreno图形处理器全解析