Object类

本文详细介绍了Java中Object类的11个核心方法,包括toString(), equals(), hashCode(), getClass(), clone(), finalize()等,并解释了这些方法的作用及应用场景。同时,文章探讨了equals与hashCode的关系、对象克隆及垃圾回收等重要概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Object

11个方法,无构造器

1.String toString() - 将对象以字符串形式输出
类中需重写

System.out.println(a.toString());

2.boolean equals(Object obj) - 判断this和obj是否相等

System.out.println((new String("string").equals(new String("string"))));

3.native int hashCode() - 生成对象的哈希值,内存中的存储位置有关

默认实现使用c++底层代码,计算方式-通过内存空间来计算,new出的对象,物理位置都不同,因此每个new对象哈希值都不同
HashSet/HashMap 会使用哈希值,hashCode()
重写的规则:和equals方法一致
equals判断相等的两个对象,必须保证哈希值一样
equals判断不相等的两个对象,哈希值尽量不同

4.Class getClass()
加载 - 方法区 - 字节码对象
加载的触发条件:
------------------------- 类加载器ClassLoader(反射)
--------------------------实例化对象 new
--------------------------静态方法/静态变量
--------------------------使用子类,父类加载
Class.forName(“java.lang.String”) – 手动加载指定类
String.class -> 获得类的字节码对象
类加载:类的字节码信息加载到JVM的方法区中
Class 类型 - 对象 - 一个

5.Object clone():克隆-复制
浅克隆:clone() - 复制引用
深克隆:对象的读写 - 复制对象
要求对象是可以克隆的 Cloneable(空) 标记是可克隆的

6.void finliaze() - GC 垃圾回收
内存泄露:内存被无效对象占用
GC:在程序运行时开始启动,不定时回收内存所标记的垃圾
也可以手动调用GC,System.gc()
没有引用的对象,会被内存标记为垃圾
原则上,Java中是不存在内存泄漏的
finliaze() 在对象被回收时调用的

跟线程有关的方法(5种)
wait()*3:线程归还时间片
notify()/notifyAll():唤醒wait()的线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值