【常用类探讨】Object类(一)入门了解
发布日期:2021-05-06 07:31:54 浏览次数:24 分类:精选文章

本文共 2265 字,大约阅读时间需要 7 分钟。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cUOqOztd-1598691497127)(414F98FCF91F481A94755ABE21632E46)]

文章目录

引言:Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起。作为其他所有类的基类,Object具有哪些属性和行为,是Java语言设计背后的思维体现。

简介

  • 包路径:java.lang
java.lang包包含着Java最基础和核心的类,在编译时会自动导入
  • ?什么是Object类
# Object是类层次结构的根类,所有的类都隐式的(不用写extends)继承自Object类# Java 所有的对象都拥有Object默认方法
  • ? CLass类和Object类的关系
# Object类和Class类没有直接的关系Object类是一切java类的父类,对于普通的java类,即便不声明,也是默认继承了Object类。典型的,可以使用Object类中的toString()方法Class类是用于java反射机制的,一切java类,都有一个对应的Class对象,他是一个final类Class 类的实例表示,正在运行的 Java 应用程序中的类和接口

类构造器

  • ?Object的构造方法是什么
# Object类的构造方法有一个,并且是无参构造对应了一句话,子类构造方法默认访问父类的构造是无参构造

类方法

Object类没有定义属性,一共有13个方法

在这里插入图片描述

13个方法之中并不是所有方法都是子类可访问的,一共有9个方法是所有子类都继承了的

  • 需了解
    • hashCode() 返回对象的哈希值(散列码)
    • getClass() 返回对象的字节码文件对象
    • finalize() 释放资源
    • clone() 以实现对象的克隆
    • notify() 该方法唤醒在该对象上等待的某个线程
    • notifyAll() 该方法唤醒在该对象上等待的某个线程
    • wait() wait方法就是使当前线程等待该对象的锁
  • 需掌握
    • toString() 返回该对象的字符串
    • equals() 比较两个对象是否相同

具体方法

equals() 方法

  • public boolean equals(Object obj)
# Object 类的 equals 方法实现,对象上差别可能性最大的相等关系;# 即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用 同一个对象 时,此方法才返回 true# Object 默认 equals 方法比较的是 对象的地址,Object类中的 equals 方法内部使用的就是==比较运算符# 只要两个对象内容相同(满足下面两个条件),那么它们就相等。所以经常需要子类 重写 equals 方法同一个类的对象成员变量值都相同
  • ?equals() 和 == 的区别
# == 的作用:基本类型:比较值是否相同   引用类型:比较的就是堆内存地址是否相同# equals 的作用:引用类型:默认情况下,比较的是地址值

toString() 方法

# 返回一个String类型的字符串,用于描述当前对象的信息,使用频率极高,一般都有子类都有覆盖,即可以重写返回对自己有用的信息# 默认返回的是当前对象的类名+hashCode的16进制数字# 该方法返回一个字符串,它的值等于:getClass().getName() + '@' + Integer.toHexString(hashCode())

getClass() 方法

  • public final Class getClass()
# 获取该对象所对应的类的字节码文件对象 , 也是返回该对象的运行时类的java.lang.Class对象JButton b1 = new JButton("button1");System.out.println(b1.getClass());//输出:class javax.swing.JButto

hashCode() 方法

  • public int hashCode()
返回该对象的 哈希码值两个相等的对象,要求返回相等的 哈希码值static int hashCode(Object a) : 如果 a 为 null 返回 0,否则返回a.hashCode()

finalize() 方法

垃圾回收器准备释放内存的时候,会先调用 finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。(垃圾回收器的执行时机不确定)子类可以重写 finalize 方法,以配置系统资源或执行其他清除

clone() 方法

  • protected Object clone()
# 创建并返回此对象的一个副本# 深复制和浅复制:浅复制(浅克隆)浅复制仅仅复制所考虑的对象,而不复制它所引用的对象深复制(深克隆)深复制把要复制的对象所引用的对象都复制了一遍

registerNatives()

  • private static native void registerNatives()
# registerNatives函数前面有native关键字修饰Java中,用native关键字修饰的函数表明该方法的实现并不是在Java中去完成而是由C/C++去完成,并被编译成了.dll由Java去调用。
# 方法的具体实现体在dll文件中,对于不同平台,其具体实现应该有所不同# 具体到registerNatives()方法本身其主要作用是将C/C++中的方法映射到Java中的native方法,实现方法命名的解耦

—end

上一篇:【2020阿里云博客部署实战】如何购买阿里云网站域名教程
下一篇:JAVA基础栏目——深挖详解合集

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月17日 22时20分58秒