Object类(所有类的父类)

2023-05-16

文章目录

  • 前言
  • 一、Object类
    • 1.1概述
    • 1.2 Object常用方法
    • 1.3 Object类型变量
    • 1.4 Objects类注意事项
  • 总结


前言

提示:常用类学习篇,掌握节奏就变得简单易懂了,没有甚么特别难理解的地方。

API的学习:
1) 构造方法
2) 常用方法:什么时候调用,跟什么有关,用来做什么的,得到的是什么

java.lang - 基础包 String StirngBuilder 包装类 线程
java.io - Input/Output
java.util - 工具包 Date Collection Map
java.text - 格式化 DateFormat
java.sql - 跟数据相关
java.net - 网络TCP/IP

一、Object类

1.1概述

所有类的父类(基类),所有的类都默认继承Object,也就意味着会默认继承Object类中所有的方法

※ps:只有一个无参构造方法,并且没有静态常量,所有方法必须,通过对象来调用

1.2 Object常用方法

1) Class<?> getClass()

	a.作用: 通过对象的该方法,可以获取对象的字节码对象
	b.类加载的触发条件(使用类)
		(1).实例化对象  new
		(2).调用静态变量/静态方法
		(3).使用子类,加载父类
		(4).Class.forName("全类名") -- jdbc
		(5).对象.getClass

2) (protected) Object clone() 更加详细的浅克隆和深克隆看其他文章

	a.克隆的方式:
		深克隆:	复制对象,制出一个新的内存(对象),和原本的内存的内容完全一致,两个内存的地址是不同的。
		浅克隆:	复制引用,是通过对象引用student2=student1,本质指向一个内存。
	b.调用
		1.方法必须重写
		2.必须要实现Cloneable接口,否则会抛出CloneNotSupportedException - 不支持的克隆异常
	c.※注意:
		1.一般不会重写clone(),因为可以使用引用的赋值进行复制,进行深克隆必须重写.
		2.Cloneable接口 - 是一个空接口,目的就是为了标记是可克隆的

3) (protected) void finalize()

	a.内存溢出和内存泄漏
		内存溢出: 在内存中没有存储的地方
		内存泄漏: 内存被无用的对象占用
			[一个对象分配内存空间后,在使用结束时没有及时释放,导致一直都在占用内存,没有及时清除,使得实际的可使用内存在减少]
	b.java存在垃圾回收机制 - gc
		gc: 定时清理内存中的垃圾
			1.垃圾: 没有引用的对象,被定成垃圾
			2.可以手动调用 System.gc(本质是提醒垃圾回收,但是不一定执行)

		注意: java原则上是不存在内存溢出和泄漏问题

4) String toString()

	a.作用: 将对象以字符串的形式输出
	b.[默认实现]:
	getClass().getName() + "@" + Integer.toHexString(hashCode())
		@前: 全类名 -> 包名 + 类名
		@后: 16进制的地址值

	c.方法的重写
		目的: 以自定义的方式展示对对象的显示

在这里插入图片描述

在这里插入图片描述

5) boolean equals(Object obj)

	a.作用:判断两个对象[this 和 obj]是否相等
	b.Object中的equals默认实现:
		是判断两个对象的地址值是否相等
		重写过后,判断两个对象的内容是否相等
	c.重写的过程:
		1.判断是不是同一种类型
		2.判断是不是同一个对象
		3.既不是同一个对象,也不是同一个类型的情况
	d. 在写java代码时遵循JavaBean,最好重写equals和hashcode
	e. 提示,equals为重写的话本质和‘==’是一样的,都是对象地址⽐较,其他类的equals是重写了的,比如之后的Integer(int的包装类)

在这里插入图片描述

6) int hashCode() - 获取hash值 -指的是内存地址值

	public native int hashCode(); 
		native:本地 -> 底层下是c++实现的代码
		
	在写java代码时遵循JavaBean,最好重写equals和hashcode

7) wait() * 3 / notify()/notifyAll() – 跟线程相关的,以后补充

1.3 Object类型变量

Object ob;意为任意类型,在泛型中常见,以Object作为变量的类型可以通过多态来简化代码,减少因为类型不同而产生的重复性处理变量类型的代码。

1.4 Objects类注意事项

在这里插入图片描述
简而言之就是优化了空指针会抛出异常,Objects会直接进行判断不抛异常


总结

提示:Object方法作为所有类的父类,所包含的方法都要全部记住并理解,不过好在没什么不好理解的,记住,所有的类都可以调用Object的方法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Object类(所有类的父类) 的相关文章

随机推荐

  • 12.RTT-IIC设备-AHT10温湿度传感器

    本系列博客更新结束啦 xff01 完结啦 xff01 xff01 xff01 撒花 xff01 xff01 xff01 关于RTT的设备和驱动专题更新完毕啦 xff0c 本期是最后一期 一段学习旅途的结束意味着下一段学习冒险的开始 虽然本系
  • RTduino+sht31温湿度传感器

    本次博客使用的是STM32F103C8T6 xff0c 因为该BSP已经对接好RTduino了可以直接上手使用 一 RTduino简介 RTduino是RT Thread实时操作系统的Arduino生态兼容层 xff0c 为RT Threa
  • 一文揭秘字节跳动、华为、京东的薪资职级

    声明 xff1a 本文所有数字均不是官方数据 xff0c 为网络资料收集整理 字节跳动 01 全球员工总数 字节的员工数量目前超过5万人 图片来源 xff1a 字节范 02 岗位职级 字节跳动的职级研发序列一共10级 xff1a 字节跳动创
  • ESP_C3在ubuntu下运行RT-Thread

    1 clone源代码RT Thread git clone git 64 github com RT Thread rt thread git 2 开始搭建ESP IDF环境 进入源码到bsp文件夹下找到ESP32 C3 xff0c 开始配
  • uniapp中使用弹出层

    uniapp中使用弹出层 因为业务的需要 xff0c 需要弹出一个复选框 xff0c 使用uniapp中自带的框架 使用 xff1a 第一步 xff1a 下载下示例项目 xff0c 找到主要的文件夹 第二步 xff1a 将该文件夹放到组件的
  • 手写一个uniapp的步骤条组件

    span class token operator lt span template span class token operator gt span span class token operator lt span view span
  • uniapp中的分页

    数据量过多就会使用分页 第一种 xff1a API span class token comment 和data同级 span span class token function variable function onReachBotto
  • uniapp中生成随机的二维码并进行保存

    需求 xff1a 需要根据用户id的不同生成不同的二维码 xff0c 并进行本地保存 第一步 xff1a 下载插件 这里对于二维码的生成 xff0c 使用的是第三方插件weapp qrcode min js xff0c 主要用到的文件是 d
  • Pc端的基本Echarts

    Pc端的基本Echarts 双环传态图组件 span class token operator lt span template span class token operator gt span span class token oper
  • el-table表格的sortable排序的使用以及出现小数、%排序错乱

    前端实现排序 xff1a 只需要在表头上加上一个sortable属性即可 span class token tag span class token tag span class token punctuation lt span el t
  • 浏览器的回退和导航栏的选中转态不同步,路由在新窗口打开

    问题1 xff1a 浏览器的回退和导航栏的选中状态不能同步的问题 问题 xff1a 用户后退时候 xff0c 左边导航栏显示的还是上一个页面的导航 xff0c 但是路由和页面已经变了 span class token operator lt
  • 左右联动-左侧点击相应的位置,右侧随之滚动

    第一步 xff1a npm下载 npm install better scroll save 第二步 xff1a 局部注册 xff08 当前组件 xff09 span class token keyword import span BScr
  • 杂技-各种css小技巧

    渐变字体 background image webkit linear gradient bottom 379ED7 0FE2EE webkit background clip text webkit text fill color tra
  • 深入理解Kotlin无参构造函数

    Unsafe 创建实例 在java中 创建一个对象 其实主要就是3种方法 通过new 关键字来创建 这种是最常见的 通过反射构造方法来创建对象 这种也不少见 很多框架中都有使用 Unsafe类来创建实例 xff0c 这种情况非常少见 这里先
  • VScode 快捷键

    一 VScode 快捷键 这里主要记录是 VScode开发工具常用的快捷键 xff0c 以便提高工作效率 xff0c 以及今后方便查阅 xff01 xff01 xff01 SHIFT 43 ALT 43 I 在选定的每行末尾插入光标CTRL
  • 结构体与共用体 链表 编译预处理

    结构图和共同体 单科成绩分析统计程序 题目要求 xff1a 1 输入学生个数 成绩 2 计算平均分 最高分 最低分 3 计算各个分数段人数并计算平均分 4 排序从高到低 刚开始计算各分段人数时是这样写的 排序是这样写的 发现case2 ca
  • 【已解决】terminate called after throwing an instance of ‘cv::Exception‘,已放弃 (核心已转储)

    这是运行高翔slambook2的代码出现的错误 terminate called after throwing an instance of cv Exception what OpenCV 3 4 15 home diyu opencv
  • C语言打印文件中指定位置所在行内容

    函数说明 void PrintFileOfPosition int position file char src file xff0c 参数1为指定位置 xff0c 参数2为文件名 文件读取方式为行读取 xff0c 所以读完一行要记录该行字
  • C语言中屏蔽空格和吐出getchar吃掉的字符实例

    屏蔽空格 新的改变功能快捷键合理的创建标题 xff0c 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中 居左 居右SmartyPants 创建一个自定义列表如何创建一个注
  • Object类(所有类的父类)

    文章目录 前言一 Object类1 1概述1 2 Object常用方法1 3 Object类型变量1 4 Objects类注意事项 总结 前言 提示 xff1a 常用类学习篇 xff0c 掌握节奏就变得简单易懂了 xff0c 没有甚么特别难