JavaSE之Object类
目录
Object类的概述
Object类中常用方法介绍
1.hashCode()方法
2.getClass()方法
3.toString()方法
4.equals()方法
Object类的概述
Object类是类层次结构的根类,每个类都使用Object作为超类。
所有对象(包括数组)都实现了Object类的方法。
Object类中常用方法介绍
1.hashCode()方法
语法:
object.hashCode() //返回对象的哈希码值
哈希值是根据哈希算法计算出来的一个值,该值与地址值有关,但不是实际的值。可理解为地址值。
作用:
hashCode()方法主要用来在集合中实现快速查找等操作,也可以用于对象的比较。
规定:
- 在同一个应用程序执行期间,对同一个对象调用hashCode(),如果equals()比较的信息不曾被改动过,必须返回相同的整数结果。同一个应用程序在不同执行期所得到的调用结果无需一致。
- 如果两个对象被equals()方法视为相等,对这两个对象调用hashCode()方法时必须获得相同的整数结果。
- 如果两个对象被equals()方法视为不相等,对这两个对象调用hashCode()方法不必产生不同的整数结果。
总结:
如果两个对象相同,那么它们的hashCode值一定要相同;如果两个对象的hashCo值相同,它们并不一定相同。
代码实例如下:
以上程序执行结果为:
上面代码中,因为String和ArrayList类都继承了Object,所以可以直接使用hashCode()方法。
如果两个对象相等,那么它们的哈希值也相等。代码示例如下:
执行结果为:
2.getClass()方法
语法:
object.getClass()
作用:
获取对象运行时对象的类。
代码实例如下:
以上代码执行结果为:
3.toString()方法
语法:
object.toString()
作用:
toString()方法是Object类中定义的一个重要方法,是对象的字符串的表现形式,返回值是String类型,用于描述当前对象的有关信息。
特点:
Object类中实现的toString()方法是返回当前对象的类型和内存地址信息,但在一些子类中进行了重写,也可以根据需要在用户自定义类型中重写toString()方法,来返回更适用的信息。
除显示调用对象的toString()方法外,在进行String与其他类型数据的连接操作时,会自动调用toString()方法。
调用toString()方法的默认返回格式为:对象的class名称 + @ + hashCode的十六进制字符串
代码实例如下:
以上代码执行结果为:
4.equals()方法
语法:
object.equals()
public boolean equals(Object obj)
作用:
检测一个对象是否等价与另外一个对象。
在Java中,数据等价的基本含义是指两个数据的值相等。在通过equals()和"=="进行比较的时候,引用类型数据比较的是引用,即内存地址,基本数据类型比较的是值。
注意:
- equals()方法只能比较引用类型,"=="可以比较引用类型和基本类型。
- 当用equals方法进行比较时,对类File、String、Date及包装类来说,是比较类型及内容而不考虑引用的是否是同一个实例。
- 用"=="进行比较时,符号两边的数据类型必须一致(能自动转换的数据类型除外),否则编译出错,而equals()方法比较的两个数据只要是引用类型即可。
代码实例如下:
以上代码执行结果为:
最后,感谢大家的浏览,有能力的留个赞吧,万分感谢。
"生活不止眼前的苟且,还有诗和远方的田野。"
JavaSE之Object类相关推荐
- JavaSE(六)——Object类、克隆方法
文章目录 1. Object类 1.1 定义 1.2 常用方法 2. 克隆方法 2.1 定义 2.2 对象浅克隆要注意的细节 1. Object类 1.1 定义 Object类是顶层父类,所有的类都直 ...
- JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能
JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...
- JavaSE基础知识(5)—面向对象(Object类)
一.包 java.lang包,属于java中的核心包,系统默认导入的,不用手动导入 该包中的类:Object.System.String.Integer等 1.包的好处 ①分类管理java文件,查找和 ...
- JavaSE——面向对象高级(继承、final关键字、抽象类与接口、多态、Object类、内部类、包装类、可变参数)
第3节 面向对象高级 一.继承 1.1 概述和使用 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类.继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法 ...
- 2019-9-17【Javase】object、final、实现关系、抽象类、接口、多态、UML类图
文章目录 Object类 1.equals() hashCode():hash算法 toString(): 一.final 修饰: 类 ,方法,变量: 类: 此类不能被继承: 方法:不能被重写: 变量 ...
- JavaSE面向对象:继承、多态、Super、Object类、重写、static、final、静态成员、懒汉式、饿汉式、单例设计模式、初始化块、抽象类、抽象方法、接口
感谢尚硅谷免费提供的视频 继承 ** 理解 ** 生活中的继承:子女继承了父母的财产或相貌或才华 java中的继承:一个类不用自己定义属性或方法,就已经具备了另一个类的属性和方法 把这种现象称为jav ...
- Class类和Object类及用法(二)
getClass()方法 4.public final native Class<?> getClass(); getClass()也是一个native方法,返回的是此Object对象的类 ...
- Class类和Object类及用法(一)
Java中Class类及用法 Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI. 这项信息纪录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确 ...
- 「JavaSE」- 常用类
常用类 Object类 Object是所有类的父类,任何类都默认继承Object.理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Obje ...
最新文章
- Object Pools 喷泉效果实现
- c语言二维数组对每一列排序,二维数组对每一行进行排序。。
- cad渐开线齿轮轮廓绘制_如何在机械CAD软件中自动生成齿轮
- A+B in Hogwarts (20)
- 难道是我洞悉了CSDN网站订阅专栏收益的秘密?带你看看网站专栏一天营收几何?
- java 百亿计算器,百万换算成亿(百万换算成亿计算器)
- Netty网络编程实战2,使用Netty开发聊天室功能
- idea启动项目报错 --To prevent a memory leak, the JDBC Driver has been forcibly unregistered
- 【计算机毕业设计】java ssm网上宠物商店系统
- 拒绝同质化,主题酒店大势所趋
- 安卓手机修改IMEI方法
- C++(三十六)之电视机和遥控器友元类
- 【热门课后习题答案】数学分析、微积分、物理等
- 苹果app商品定价_iOS 开发_2017苹果内购价格表
- 300字的计算机英语作文,大学英语作文300字【五篇】
- iOS ERROR ITMS-9000: Missing or invalid signature. The bundle 'com.google.GPPSignIn3PResources' at
- soundtouch android,soundtouch
- 微信公众号如何安全“涨粉”
- 动作检测py-y5-kapao
- 修改一封邮件的发件人等信息