常用类的概念.
常用类一、Object类1. Object类的介绍(1) Object类位于java.lang包中是继承关系的根类、超类是所有类的父类(直接的父类或是间接父类)(2) Object类型的引用可以用于存储任意类型的对象。(3) Object类中定义方法所有类都可以直接使用。2. Object类中常用方法(1) getClass()返回引用中实际存储的对象类型。【理解】开发实际应用用于判断两个引用中实际存储的对象类型是否一致一致→true;不一致→false。class Animal{}class Dog extends Animal{}class Cat extends Animal{}//案例Animal a1 new Cat();Animal a2 new Dog();System.out.println(a1.getClass() a2.getClass());(2) int hashCode()返回对象的整数哈希码值。对象的哈希码值来源是将十六进制的地址转换十进制的整数的结果。注意由于不同的对象在堆空间中有不同的十六进制的地址所有不同的对象具有不同哈希码值。(3) String toString()返回该对象字符串的变现形式。【开发重点】a. 作用方便展示对象的信息子类通常将toString方法覆盖。toString方法覆盖的原则如下通常将所有的属性拼接为一个字符串进行结果返回。b. 案例public String toString(){return namename,ageage; // this. 省略}c. get方法和toString方法区别I. get方法是返回对象的单个属性的信息并且不会改变属性对应数据类型II. toString方法获取所有属性的信息并且将所有属性拼接为一个String类型的结果进行返回。(4) boolean equals(Object o)用于比较对象内容是否相同。【开发应用重点】a. 的应用I. 如果 两端为基本数据类型的变量则判断变量中数值是否相同如果 两端为引用类型的变量则判断引用中存储的地址是否相同。II. 开发中 两端为引用类型的实际应用通常用于判断两个引用是否指向同一个对象。引用名1 引用名2 结果为true代表两个引用指向同一个对象结果为false,代表两个引用指向不同的对象。b. equals方法的应用I. 父类Object类中equals方法实现原理如下public boolean equals(Object obj) {return (this obj);}注意父类中的equals方法是用于比较两个引用是否是同一个对象但是开发时通常用equals方法比较对象的内容所以父类中equals方法不足以满足子类的需求则需要覆盖父类Object中equals方法。II. equals方法覆盖的原则public boolean equals(Object obj){// 1. 自反性:判断当前对象和要比较的对象是否指向同一个对象 this 和 objif(this obj){return true;}// 2. 判断 obj是否空if(obj null){return false;}// 3. 判断 两个引用中实际存储的对象类型是否一致if(this.getClass() ! obj.getClass()){return false;}// 4. 强制类型转换为——比较对象属性做准备Student s (Student)obj;// 5. 将对象中属性一一进行比较:基本数据类型的属性 引用类型equals比较if(this.age s.age this.score s.score this.name.equals(s.name)){return true;}else{return false;}}面试重点 和 equals方法的区别。解析(1) 的应用两端为基本数据类型比较变量中数值是否相同两端为引用类型的变量比较引用存储地址是否相同(2) equals方法Object类中方法用于实现()实现比较对象地址但是实际开发时需要将equals方法进行覆盖用于比较对象的内容是否相同。(5) finalize()JVM进行垃圾回收时,自动调用的方法。(垃圾回收器回收垃圾对象)(JVM性能调优时关注)【面试】a. 垃圾对象没有任何引用指向的对象。Student s new Student();s null; // 将s指向的对象设置为 垃圾对象b. 垃圾回收器用于JVM回收垃圾对象。简称为gc / GCc. 垃圾回收的目的清除垃圾对象释放空间提高空间利用率。d. 垃圾回收器回收垃圾对象时机① 自动回收机制当JVM内存耗尽时不能再为新创建的对象分配空间时JVM中垃圾回收器会自动将所有的垃圾对象一次性进行回收垃圾回收器进行回收垃圾对象时自动调用finalize方法。② 手动回收机制利用System.gc();通知垃圾回收器(GC)进行垃圾回收如果GC空闲则进行垃圾回收如果GC繁忙则暂不回收。注意开发时finalize方法中不写任何重要代码finalize方法的执行节点不可控。二、包装类(位于java.lang包中)1. 概念基本数据类型对应引用类型称之为基本数据类型的包装类。2. 基本数据类型对应的包装类【重点】基本数据类型 包装类类名byte Byteshort Shortint Integerlong Longfloat Floatdouble Doublechar Characterboolean Boolean3. 数据之间转换【了解】(1) int 和 Integer之间的转换int ----- Integera. Integer i1 new Integer(12); // 借助构造方法b. Integer i2 Integer.valueOf(12); // 借助Integer类中的静态方法Integer ----- inta. int a1 i1.intValue(); // 借助Integer类中的成员方法 intValue()(2) String 和 Integer之间的转换String ---- Integera. Integer i3 new Integer(123); // 借助Integer类中的构造方法b. Integer i4 Integer.valueOf(123); // 借助Integer类中的静态方法Integer ---- Stringa. String s1 i4.toString();b. String s2 i4;//借助字符串的拼接(3) int 和 String之间的转换int --- Stringa. int a 3;String s3 a;String --- int 【开发应用重点】int a Integer.parseInt(123); // 借助 Integer类中静态方法注意将String类型的数据转换为int/Integer类型的数据要求要转换的String数据类型必须是纯数字否则运行报错错误信息如下java.lang.NumberFormatException (数字格式转换异常)4. 自动装箱、自动拆箱(1) JDK5.0之后提供自动装箱和自动拆箱的功能基本数据类型和对应包装类型之间可以相互自动转换(2) 自动装箱基本数据类型可以直接赋值给其对应的包装类型。自动拆箱包装类型的引用可以直接赋值给其对应的基本数据类型的变量。(3) 案例Integer i 12; // 自动装箱int a i; // 自动拆箱(4) 自动装箱实现的原理自动装箱底层调用的时Integer类中 静态的 valueOf方法【面试难点】public static Integer valueOf(int i) {if (i -128 i 127)return IntegerCache.cache[i (-IntegerCache.low)];return new Integer(i); // 如果 传入数据不在-128~127之间则new Integer类型对象}注意Java中将-128~127常用数据段的内容进行了预先的包装处理转换数据只要在-128~127之间不需要每次创建对象而是从处理结果中直接获取即可-128~127处理结果存储在缓冲区中、常量池。面试题目Integer i1 12;Integer i2 12;System.out.println(i1i2); // trueInteger i3 150;Integer i4 150;System.out.println(i3i4); // false5. 包装类实际开发应用【开发重点】(1) 可以用于区分有效数据和无效数据例如 0 和 null0.0和null.(2) 场景开发时通常将类中属性定义为基本数据类型对应包装类型。--区分有效数据和无效数据的三、String类【开发重点】1. 创建字符串的方式【面试重点】(1) String s1 hello; // 只会创建一个对象在串池中产生(2) String s2 new String(world); // 产生两个对象。一个在堆空间中一个在串池中产生。注意如果串池中已经存在的字符串常量对象不会重复创建。2. String类中常用方法(1) char charAt(int index)根据下标获取对应的字符。注意String类中封装了一个char类型数组下标范围 0~字符串的长度-1如果指定的下标超出下标范围则运行报错错误信息为java.lang.StringIndexOutOfBoundsException(数组下标越界)(2) boolean contains(String str)判断一个字符串中是否包含str子串包含→true;否则→false.(3) boolean equals(String str)比较两个字符串内容是否相同相同→true;否则→false.注意开发时比较字符串内容需要用equals方法比较。(4) int length()获取字符串的长度。注意获取数组的长度数组名.length ;// 思考如何遍历字符串String s hello;for(int i0;is.length();i){// 通过下标获取 对应的字符charAtchar c s.charAt(i);System.out.println(c);}(5) String trim()去除字符串前后的空格。注意应用场景结合将String转换int/Integer时应用String age 18 ;int n Integer.parseInt(age.trim());(6) String[] split(String str)将当前字符串进行拆分拆分结果封装为一个String类型的数组。3. String的不可变性【面试题目】(1) String的字面值是字面常量如果在字符串上进行操作在原有字符串的基础上拷贝一个副文本在副文本上完成操作(字符串拼接)。(2) 由于String具有不可变性所以在完成字符串拼接时效率较低。注意String s ab;上面的字符串拼接只创建一个对象。原因如果 两端都为字符串常量时编译器在编译阶段将ab直接编译为ab,称为编译器可知。四、可变长的字符串(位于java.lang包)1. StringBuffer:JDK1.0版本线程安全运行效率慢StringBuilder:JDK5.0版本线程不安全运行效率快。2. 常用的构造方法(1) public StringBuilder()无参数的构造方法(2) public StringBuilder(String str)带有字符串类型参数的构造方法3. 常用功能方法StringBuilder append(String str)字符串的拼接4. 注意StringBuilder是可变长字符串所有拼接效率远远高于 String。面试题目 String 和 StringBuilder、StringBuffer的区别。解析(1) String 是不可变长的字符串在完成字符串拼接时效率较低。String线程安全。(2) StringBuilder是可变长的字符串在完成字符串拼接时效率较高。StringBuilder线程不安全。(3) StringBuffer是可变长的字符串在完成字符串拼接时效率较高StringBuffer线程安全。五、BigDecimal类【了解】1. BigDecimal类位于java.math包中2. 作用精确的表示、计算浮点数3. 常用的构造方法public BigDecimal(String n)带有字符串类型构造方法4. 常用的方法(1) BigDecimal r1 bd1.add(bd2); // 加法 bd1 bd2(2) BigDecimal r2 bd1.subtract(bd2); // 减法 bd1 - bd2(3) BigDecimal r3 bd1.multiply(bd2); // 乘法 bd1*bd2(4) BigDecimal r4 bd1.divide(bd2,2,BigDecimal.ROUND_HALF_UP); // 除法 bd1/bd2参数说明第一个参数分母数据第二个参数指定保留到小数点后几位第三个参数取舍模式通常采用四舍五入(BigDecimal.ROUND_HALF_UP)

相关新闻

微生物菌种采购新趋势:如何科学选择优质供应商

微生物菌种采购新趋势:如何科学选择优质供应商

随着生物技术产业的快速发展,微生物菌种作为生物制造、医药研发、食品发酵、环境治理、农业育种等领域的核心基础资源,市场需求持续攀升。然而,面对市场上琳琅满目的供应商和产品,如何选择一家可靠的微生物菌种厂家成为众多科研机…

2026/6/18 2:20:35阅读更多 →
Java毕设选题推荐:基于 Spring Boot 的高校纵向科研项目信息管理系统的设计与实现 基于 Spring Boot 的校级纵向科研课题【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 Spring Boot 的高校纵向科研项目信息管理系统的设计与实现 基于 Spring Boot 的校级纵向科研课题【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/18 2:20:35阅读更多 →
抖音视频去水印:开源工具如何三步实现纯净视频下载?

抖音视频去水印:开源工具如何三步实现纯净视频下载?

抖音视频去水印:开源工具如何三步实现纯净视频下载? 【免费下载链接】kill-douyin-watermark-online 抖音视频无水印解析傻瓜式下载,仔细看源码可以集成到你自己的程序中。 项目地址: https://gitcode.com/gh_mirrors/ki/kill-douyin-water…

2026/6/18 2:20:35阅读更多 →
大型空气能热水器一年能省多少电费?算给你看

大型空气能热水器一年能省多少电费?算给你看

在东莞,工厂、学校、酒店等场所每天都需要大量热水供应,传统电热水器或燃气锅炉的运行成本常让管理者头痛。近年来,以 格瑞沃空气能 为代表的商用空气能热水器逐渐成为集中热水工程的首选。那么,一套大型空气能热水器到底能省多少…

2026/6/18 3:35:47阅读更多 →
酷安UWP电脑版:3步快速安装指南与高效使用技巧

酷安UWP电脑版:3步快速安装指南与高效使用技巧

酷安UWP电脑版:3步快速安装指南与高效使用技巧 【免费下载链接】Coolapk-UWP 一个基于 UWP 平台的第三方酷安客户端 项目地址: https://gitcode.com/gh_mirrors/co/Coolapk-UWP 想在Windows电脑上畅享酷安社区的全功能体验吗?酷安UWP客户端为你提…

2026/6/18 3:35:47阅读更多 →
D2DX宽屏补丁终极指南:让暗黑破坏神2在现代PC上焕然一新

D2DX宽屏补丁终极指南:让暗黑破坏神2在现代PC上焕然一新

D2DX宽屏补丁终极指南:让暗黑破坏神2在现代PC上焕然一新 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在为经…

2026/6/18 3:35:47阅读更多 →
内存取证范式重构:微信数据解析的架构哲学与技术边界

内存取证范式重构:微信数据解析的架构哲学与技术边界

内存取证范式重构:微信数据解析的架构哲学与技术边界 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 在数据隐私与数字取证的交汇点上,微信数据解析技术正经历着从工具级应用到平台级解决方案的范式…

2026/6/18 3:35:47阅读更多 →
lazypredict深度避坑指南:自动机器学习工具的工业级使用边界

lazypredict深度避坑指南:自动机器学习工具的工业级使用边界

1. 为什么我用了一年 lazypredict,却在第三个真实项目里就把它从生产环境彻底移除了? 你有没有过这种经历:刚接触一个新工具时,它像一道光——三行代码跑完二十个模型,表格自动排好名次,准确率、耗时、F1值…

2026/6/18 3:35:47阅读更多 →
如何永久保存微信聊天记录:智能数据导出与年度报告生成完全指南

如何永久保存微信聊天记录:智能数据导出与年度报告生成完全指南

如何永久保存微信聊天记录:智能数据导出与年度报告生成完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending…

2026/6/18 3:30:47阅读更多 →
ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

1. ZigBee HA:智能家居的“通用语言”与开发基石如果你正在或计划踏入智能家居设备开发领域,尤其是基于ZigBee协议,那么“ZigBee Home Automation”这个名词你一定不陌生。它不仅仅是ZigBee联盟定义的一套应用层规范,更是确保不同…

2026/6/18 0:00:24阅读更多 →
Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/18 0:00:24阅读更多 →
JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

1. 项目概述在嵌入式开发领域,尤其是基于NXP JN517x这类无线微控制器的项目中,系统稳定性和与外设的可靠交互是两大核心挑战。前者关乎产品能否在无人值守的复杂环境中长期运行,后者则决定了设备能否准确感知世界并与其他芯片“对话”。JN517…

2026/6/18 0:00:24阅读更多 →