Object类
来源:互联网 发布:clock算法 编辑:程序博客网 时间:2024/06/18 17:05
Object类是所有类的父类
主要有以下方法:
① equals(): 方法内部判断两个对象是否==相等,也就是判断对象的地址是否相等,如果相等那么hashcode一定相等。这个方法可以被重写,String重写了这个方法,String的equals()方法判断的是两个字符串的值知否相等。
②hashCode(): 该方法为本地方法,返回的是该对象的hashCode值,hashcode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值,hashcode值相等,equeals不一定相等,因为hashcode值并不一定是内存地址。HashMap中的put方法是给HashMap添加新的元素,会先调用hashCode()方法获取要添加元素的hashcode值,然后查看table中是否存在该hashcode值,若存在则调用equals()方法确定是否存在该元素,若存在,则更信value值,若不存在则直接添加。从这里可以看出来,hashcode的存在,是为了减少equals的调用,从而提高程序的效率。
★equals相等,hashcode必须相等。 ★hashcode相等,equals不一定相等。 ★根据以上两条准则,所以重写equals()方法时需要重写hashcode()方法。 ★只要equals比较操作用到的信息没变,那么对同一个对象调用多次,hashcode必须始终如一的返回同一个整数。如果对象中的数据易变,则在重写equals和hashcode方法的时候不要依赖该数据。
http://www.cnblogs.com/dolphin0520/p/3681042.html
③toString(): 返回对象的字符串格式:类名@哈希码值,一般类都会将他重写。
④getClass(): 本地方法,返回一个运行时类。
⑤clone(): 克隆,复制一个新的对象并返回。
⑥finalize(): 垃圾回收器认为该对象是垃圾对象时会调用该方法,子类可以通过重写该方法来达到资源释放的目的。任何对象该方法只会被调用一次。
⑦notify(): 本地方法,唤醒一个当前对象监视上等待的线程。
⑧notifyAll(): 本地方法,唤醒当前对象监视上所有等待的线程。
⑨wait(): 调用该方法会出现中断异常,需捕获。
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Object类
- Vue 风格指南快速入门
- 解析流量的核心密码,轻松获取十万精准粉丝!
- CentOS yum有时出现“Could not retrieve mirrorlist ”的解决办法——resolv.conf的配置
- Solr相关
- es6模块的导入和执行顺序
- Object类
- 解决springboot中kotlin语法$失效的问题
- spring学习----spring事物异常回滚
- 项目部署及一般的linux指令
- Android 图片处理
- 数组指针和指针数组的问题
- HashTable四种遍历方式
- 【环境配置】ubuntu中shell命令不能识别通配符的解决办法之一
- Android 富文本编辑