
【常用类探讨】Object类(一)入门了解
发布日期:2021-05-06 07:31:54
浏览次数:24
分类:精选文章
本文共 2265 字,大约阅读时间需要 7 分钟。
文章目录
引言: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
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月17日 22时20分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
设计模式-抽象工厂模式
2019-03-06
MySQL Explain查看执行计划详解
2019-03-06
IntelliJ IDEA 中,项目文件右键菜单没有svn选项解决办法
2019-03-06
Spring 动态绑定多实现类实例综述
2019-03-06
IDEA 调试Java代码的两个技巧
2019-03-06
MyBatis常见面试题:#{}和${}的区别是什么?
2019-03-06
Vue 数组和对象更新,但视图未更新,背后的故事
2019-03-06
剑指Offer面试题:9.二进制中1的个数
2019-03-06
《你是在做牛做马还是在做主管》- 读书笔记
2019-03-06
ASP.NET Core on K8S学习之旅(12)Ingress
2019-03-06
重新温习软件设计之路(4)
2019-03-06
《刷新》:拥抱同理心,建立成长型思维
2019-03-06
MVC3+NHibernate项目实战(二) :数据库访问层
2019-03-06
Flask入门
2019-03-06
MySQL数据库与python交互
2019-03-06
python如何对字符串进行html转义与反转义?
2019-03-06