【转】为什么要重写hashcode()方法和toString()方法
2024-08-24 12:45:30
Object 类 包含toString()和hashCode()方法。
一、toString():
在Object类里面定义toString()方法的时候返回的对象的哈希code码,这个hashcode码不能简单明了的表示出对象的属性。所以要重写toString()方法。
当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法。
默认情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的是此对象的类名和此对象对应内存的首地址(形如:Demo@774e1f2b),如果想自定义输出信息必须重写toString()方法。
二、hashCode():
在Object类里面定义的equals比较的是对象的引用是否指向同一块内存地址。 一般情况下比较两个对象时比较他的值是否一致,所以要进行重写。重写之后是为了比较两个对象的value值是否相等。 特别指出,利用equals比较八大包装对象(如int,float等)和String类(因为该类已重写了equals和hashcode方法)对象时,默认比较的是值,在比较其它对象都是比较的引用地址。
最新文章
- Python学习资料下载地址(转)
- Python招聘需求与技能体系
- C++中文件按行读取和逐词读取 backup
- 动态规划——C编辑最短距离
- Uninstall or Disable Java on a Mac
- AngularJS心得体会
- windows+Ubuntu双系统 windows引导修复
- php知识--递归
- angularJS看MVVM
- 使用Maven管理依赖JAR文件,自定义项目布局,利用ANT生成不同的发布包
- login/logout切换
- Windows下的 Axel下载工具 - 移植自Linux
- canvas(七) 文字编写
- Java注解(3)-注解处理器(编译期|RetentionPolicy.SOURCE)
- HDU-1028 Ignatius and the Princess III(生成函数)
- C++学习(三)(C语言部分)之 基本数据类型
- Logging from multiple processes using log4net
- GDB 反向调试(Reverse Debugging)
- easybcd删除win10启动项如何恢复?
- go 函数举例练习
热门文章
- python在字节流中对int24的转换
- Spring Cloud Eureka 服务注册中心(二)
- Winform中使用控件的Dock属性设计窗体布局,使不随窗体缩放而改变
- python常用库简单使用( PyPDF2 )
- PhantomJS简单使用
- Java网上体育商城系统ssh
- python调用时间装饰器检测函数运行时间
- Qt播放音视频文件报错DirectShowPlayerService::doRender: Unresolved error code 0x80040266或DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 ()
- pip python
- 【转】面试还搞不懂redis,快看看这40道Redis面试题(含答案和思维导图)