Java中Object类

作者: 清风沐沐 | 来源:发表于2016-10-26 14:25 被阅读24次

Object类的概述

  • 类 Object 是类层次结构的根类。
  • 每个类都使用 Object 作为超类。
  • 所有的类都直接或者间接的继承自Object类。

Object类的方法

  • public int hashCode()

    • 返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。
    • 不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同。
    • 不是对象的实际地址值,可以理解为逻辑地址值。
  • public final Class getClass()

    • 返回此 Object 的运行时类。
    • 可以通过Class类中的一个方法,获取对象的真实类的全名称。
      • public String getName():以 String 的形式返回此 Class 对象所表示的实体
  • public String toString()

    • 返回该对象的字符串表示。
    //底层源码。 
    public static String valueOf(Object obj) { 
        return (obj == null) ? "null" : obj.toString(); 
    }
    

 - 它的值等于:getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
 - 由于默认情况下的数据对我们来说没有意义,一般建议重写该方法。a:手动重写b:自动生成
 - 注意:直接输出一个对象的名称,其实就是调用该对象的toString()方法。

- **public boolean equals(Object obj)**
- 指示其他某个对象是否与此对象“相等”。 (**下面有详细讲解**)
- **protected void finalize()** 
  - 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
  - 垃圾回收器不会马上回收垃圾,但是我们可以建议它尽快回收垃圾。(System.gc()方法)
  - 主要针对堆内存。

- **protected Object clone()** 
  - 创建并返回此对象的一个副本,这种克隆机制十分高效,而且二者之间完全隔离。
  - 自定义类实现克隆步骤:
    - 自定义类实现Cloneable接口,这是一个标记性接口,实现这个接口的类的对象可以实现自我克隆。
   - 自定义类中重写Object类的clone()方法。
   - 重写clone()方法时通过super.clone()调用Object类的clone()方法来得到该对象的副本,并返回该副本。

> 这里我们再来详细说一下public boolean equals(Object obj)这个方法

- 这个方法,默认情况下比较的是地址值。比较地址值一般来说意义不大,所以我们要重写该方法。
- 一般都是用来比较对象的成员变量值是否相同。
 那么 **==** 和 **equals**有什么区别呢?
> **==:** 基本类型:比较的就是值是否相同引用类型:比较的就是地址值是否相同**equals:** 引用类型:默认情况下,比较的是地址值。不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同(可以看上面代码的举例)




相关文章

  • Java之Object

    Object类是java类的根基类 Object类中的toString()方法: 1、SUN在object类中设计...

  • Java基础再回顾-初类Object篇

    关于Object Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起。作为其他...

  • java day 16

    Object Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。Object类是Java中...

  • Object & Math & System的API

    Object & Math& System的API Object类 •Object类是Java中其他所有类的基类;...

  • Java SE 1

    Java SE 1.Object 在Java类继承结构中,java.lang.Object类位于顶端。如果定义一个...

  • Object类(含有toSring)

    java.lang.Object类 Object类是所有java类的根父类 如果在类的声明中未使用extends关...

  • java -Object :equals()、tostring(

    1 Object类的简介 1)在Java类继承结构中,java.lang.Object类位于顶端; 2)如果定义一...

  • 第二十一天学Java(常用类)

    2.1、Object类: 所有类的根基,Java中的所有的类,都会直接或间接的继承Object类。 只要是java...

  • Kotlin 继承

    我们知道Java中所有的类都继承于Object类,而在Kotlin中,Any类就相当于Java中的Object.它...

  • java继承

    Object 类 1、Object类是所有类的父类 2、Java中的每个类都可以使用Object中定义的方法:-e...

网友评论

    本文标题:Java中Object类

    本文链接:https://www.haomeiwen.com/subject/wfwduttx.html