当前位置: 首页 > news >正文

【Java 人门 Day17】常用类篇(上):Object包装类,Java里的“老祖宗”和“伪装大师”!

家人们谁懂啊!Java里的 Object 类和包装类,简直是新手的“隐藏BOSS”,每次面试被问到 == 和 equals 的区别、自动装箱拆箱,都像被问住了,只能尴尬挠头。今天咱们就用唠嗑的方式,把这俩知识点扒得明明白白,看完保证你再也不被它们搞心态!

一、Object类:Java里的“老祖宗”,所有类的亲爹!

Object类,位于 java.lang 包中,堪称Java里的“老祖宗”!它是所有类的父类,不管你写什么类,默认都继承自Object,相当于所有类的“亲爹”。

- 就像你不管是谁,往上追溯都有个老祖宗,Java里的所有类,默认都继承了Object类的方法,直接就能用。

1. Object类里的“四大天王”方法

Object类里有几个核心方法,面试和开发都高频用到,咱们一个个唠:

(1) getClass() :判断对象“真实身份”的照妖镜

getClass() 方法会返回对象的真实类型,就像照妖镜一样,不管你用什么父类引用指向子类对象,它都能给你照出真实的“真身”。

- 开发里常用它来判断两个对象的类型是否一致,防止类型转换异常。

(2) hashCode() :对象的“身份证号”

hashCode() 方法会返回对象的哈希码值,相当于对象的“身份证号”,不同的对象,默认的哈希码值不一样。

就像每个人的身份证号,不同的人身份证号不同,不同的对象,默认的哈希码也不同。

(3) toString() :对象的“自我介绍”

toString() 方法会返回对象的字符串形式,相当于对象的“自我介绍”。

默认的 toString() 方法返回的是“类名@哈希码”,看着就像乱码,所以子类通常会重写这个方法,把对象的属性拼接成字符串返回,方便打印对象信息。

- 这样你打印 new Student() 的时候,就会输出清晰的对象信息,而不是乱码了。

(4) equals() :对象的“相亲现场”,和 == 有啥区别?

这是面试的高频考点!咱们先把 == 和 equals 掰扯清楚:

- Object类里的 equals() 方法,底层就是用 == 实现的:

public boolean equals(Object obj) {

return (this == obj);

}

- 但实际开发中,我们通常想比较对象的内容是否相同,而不是是不是同一个对象,所以子类要重写 equals() 方法。给你一个标准的重写模板:

(5) finalize() :对象的“遗言”,被回收前会被调用

finalize() 方法是JVM垃圾回收时自动调用的,相当于对象被回收前的“遗言”。

垃圾对象就是没有任何引用指向的对象,比如 Student s = new Student(); s = null; ,这时候原来的对象就成了垃圾对象。

​ JVM的垃圾回收器(GC)会自动回收垃圾对象,回收的时候会调用 finalize() 方法,但执行时机不可控,开发里一般不写重要代码,了解一下就行。

二、包装类:基本数据类型的“伪装大师”,把数据变成对象!

Java里的基本数据类型( byte 、 short 、 int 、 long 、 float 、 double 、 char 、 boolean ),本身不是对象,不能调用方法,也不能用在集合里,包装类就是它们的“伪装大师”,把基本数据类型包装成对象,让它们也能拥有对象的能力。

1. 八大基本数据类型对应的包装类

2. 数据之间的转换:int、Integer、String怎么互相转?

开发里经常要在这三种类型之间来回转,给你整理了常用的转换方式:

- int ↔ Integer :

​- int → Integer : Integer i = new Integer(12); 或者 Integer.valueOf(12);

​- Integer → int : int a = i.intValue();

​- String ↔ Integer :

​- String → Integer : Integer i = new Integer("123"); 或者 Integer.valueOf("123");

​- Integer → String : String s = i.toString(); 或者 s = i + "";

​- int ↔ String :

​- int → String : int a = 3; String s = a + "";

​- String → int : int a = Integer.parseInt("123"); (注意:字符串必须是纯数字,不然会报 NumberFormatException )

3. 自动装箱&自动拆箱:JDK5.0的“懒人福利”

JDK5.0之后,Java提供了自动装箱和自动拆箱功能,基本数据类型和包装类之间可以自动转换,不用手动new对象了:

- 自动装箱: int → Integer ,比如 Integer i = 12; ,编译器会自动帮你转成 Integer.valueOf(12);

​- 自动拆箱: Integer → int ,比如 int a = i; ,编译器会自动帮你转成 i.intValue();

面试必考点:Integer缓存池

Integer 类里有个缓存池,默认缓存了-128~127之间的整数,在这个范围内的 Integer 对象,会直接从缓存里拿,不会new新对象;超出这个范围,才会new新对象。

- 所以下面的代码结果是这样的:

今天先唠到这,Object类和包装类的套路你get到了吗?下一篇咱们继续扒String类、StringBuilder、StringBuffer和BigDecimal,这些开发里天天用的类,看完你就再也不会被字符串拼接、浮点数精度问题搞疯了!

http://www.jsqmd.com/news/1002888/

相关文章:

  • 2026乐山美食江湖深访:哪些老店真正经住了本地人的舌尖考验? - 优质品牌商家
  • 从热失控到封装熔断:一个电源工程师的SOA“踩坑”实录与避坑指南
  • [论文学习]LoRA-Leak:针对 LoRA 微调语言模型的成员推断攻击深度分析与隐私风险评估
  • 保姆级教程:从看懂原理图到用MaixPy配置K210任意引脚(以GPIO控制外设为例)
  • “大疆系”丰疆智能冲刺港交所,“给拖拉机装自动驾驶”生意前景几何?
  • 2026年质量好的西安厨房推拉门定做/西安极窄推拉门批量采购厂家推荐 - 品牌宣传支持者
  • 2026年AI写作辅助平台全景评测:这5款工具如何提升论文写作效果
  • 手把手教你免拆刷机:创维E900-S高安版刷当贝桌面保姆级教程(附固件包)
  • Android淘宝首页高仿源码:RecyclerView多类型布局+自定义UI组件封装
  • 2026年质量好的代理记账/税务申报代理记账/零申报代理记账/平顶山汇算清缴代理记账用户推荐公司 - 行业平台推荐
  • 2026年评价高的系统门窗/封阳台系统门窗/陕西系统门窗定制/定制系统门窗优质供应商推荐 - 行业平台推荐
  • 别再手动传密钥了!JumpServer 3.2.2保姆级教程:从零搭建到实战授权,让运维新人也能两天上手
  • 保姆级教程:在紫光同创Titan2 PG2T390H FPGA上实现高性能PCIe DMA(附源码思路)
  • 别再只盯着PLC了!用倍福EK1100耦合器+树莓派,低成本搭建你的第一个EtherCAT从站
  • 数据出队模块的-ExeModule
  • 突破网盘限速:开源直链解析工具的技术架构与应用实践
  • LLM智能体在社交模拟中的决策行为分析:有限状态与LLM-based策略对比研究
  • 2026年聚氨酯制品选购实战指南:从材料参数到供应商能力全解析 - 优质品牌商家
  • 如何彻底解决Windows多显示器窗口错位问题:PersistentWindows完整指南
  • 2026年深圳铝合金激光焊接厂家推荐榜单:铝制品/金属/钣金/全自动激光焊接工艺与技术实力深度解析 - 品牌发掘
  • 跟着 MDN 学JavaScript day_24:JavaScript对象基础完全指南
  • 数据入队模块的-ExeModule
  • 5个步骤掌握LaserGRBL:免费开源激光雕刻控制软件终极指南
  • 2026年太原刑事辩护律师推荐怎么选?看这五点关键不踩雷(蓝色河畔推荐) - 本地品牌推荐
  • <p>抚顺的街头巷尾,贵金属回收店铺星罗棋布,从黄金、白银到铂金,各类回收需求日益旺盛。为了帮大家拨云见日,找到真正靠谱的服务商,小编不辞辛劳,精心梳理了一份关于抚顺本地诚信回收店铺的参考指南。以下便
  • Harness 中的会话压缩归档与懒加载
  • 联合嵌入预测架构与拟度量强化学习的能量理论统一
  • 2026年钛板选购指南:专业钛材公司哪家可靠?中国钛谷企业实力评测与行业趋势解读 - 优质品牌商家
  • UIDesign完整解析
  • 作者归属技术与隐私保护:从特征分析到k-匿名实践