2017-10-31 23:42:08

Object类:类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。

或者说,每个类都直接或者间接继承了Object类。

常用方法:

  • hashCode(),返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。[可自动生成]

实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧)

哈希值是根据哈希算法计算出来的值,这个值和地址值有关,但不是地址值。

  • getClass(),返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
  • toString(),返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。[可自动生成]

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())
  • equals(Object obj):指示其他某个对象是否与此对象“相等”。[可自动生成]

Object 类的 equals 方法实现对象上差别可能性最大的相等关系

注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。

默认情况下,比较的是地址值。比较地址值一般意义不大,所以需要重写该方法。

boolean equals(Object obj)
{
if(this==obj) return true;
if(!(obj instanceof Student)) return false;
Student s =(Student) obj;
return this.name.equals(obj.name)&&this.age==age;
}
  • finalized():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。一般不使用,因为无法确认何时能够被收回。
  • clone():创建并返回此对象的一个副本。Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。
public class Student implements Cloneable
才能使用clone()方法

最新文章

  1. pycharm2016 激活
  2. 【原】十张javascript思维导图
  3. 小甲鱼PE详解之IMAGE_NT_HEADERS结构定义即各个属性的作用(PE详解02)
  4. 关于IP地址的一个细节问题
  5. VS2010 项目引用了微软企业库,但是编译时提示:未能找到类型或命名空间名称
  6. AndroidDev站点推荐-zz
  7. Android重写getResources规避用户调整系统字体大小影响Android屏幕适配
  8. 在String()构造器不存在的情况下自定义一个MyString()函数,实现如下内建String()方法和属性:
  9. 第一章 工欲善其事 必先利其器—Android SDK工具(3)
  10. zend studio 使用断点调试
  11. 生成输出url
  12. js 捕获浏览器关闭或者刷新页面给出提示
  13. 一步步搭建最简单oauth2.0认证和授权
  14. 使用 dynamic 类型让 ASP.NET Core 实现 HATEOAS 结构的 RESTtful API
  15. Spark技术内幕:究竟什么是RDD
  16. (代码篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝
  17. crontab在/var/log/目录下没有cron.log文件
  18. Qt样式表都有哪些属性可以设置
  19. Popover 弹出框 设置top,显示有时是向下的,解决方式
  20. Dubbo 暴露服务

热门文章

  1. 线段树(I tree)
  2. Spring 自动扫描 不支持jar包 <component-scan>
  3. 统计方法运行时间【Java实现】
  4. Python 为什么要用yield
  5. Window下安装npm
  6. 教你如何在linux下查看服务是否已经启动或者关闭
  7. printf("%d",5.01)和printf("%f",5)的输出结果
  8. linux 添加 swap
  9. VC++ 进度条更新方案
  10. JQuery插件模板