java实用类总结

1.什么是枚举类?

访问修饰符 Enum 枚举名称{}其应用上可以看做一个类去定义,如果枚举里有方法,定义的枚举常量要以':'结尾

2.应用枚举的好处?

枚举限制了范围,更加安全,如果要大量定义常量用public final static A=1;定义起来太复杂,用枚举简单多,代码简洁

public void day(Day(枚举类型) day), public void day(int day),枚举类型传递的参数更加可控,而int类型太不可控

3.什么是包装类?

所谓的包装类其实就是对基本数据类型进行装箱操作,java8种基本数据类型对应包装类:byte-Byte,short-Short ,int-integer,long-Long,char-Character,boolean-Bolean,float-Float,dobule-Double只有字符型char和整形int对应的包装类不一样。

4.为什么会有包装类?

把基本数据类型转换成包装类,使其功能更加强大,例如每个包装类里都有求最大值和最小值得方法,并且java开发思想面向对象编程。

5.基本数据转换成包装类的方法?

包装类的构造函数:Integer integer(100); Integer integer(“”100“”);字符包装类Character的基本数据类型只能通过一种构造方法Character character(‘a’);

还可以用包装类提供的value(形参)重载方法去转换,字符型的value(‘ ’)只有一种,其余有3种。

6.String类方法

String类有很多方法,这里介绍几个常用的int indexOf(int ch),int indexOf(String value),int  lastIndexOf(int ch),String trim(),String subString(int  index)

String concat(String str),split(用什么分割,分割多少份)返回用相应类型数组接收。

7.String类和StringBuffer类比较

字符串链接时StringBuffer效率远远高于String类,因为StringBuffer类append()方法在内存中已开辟的空间追加字符串,而不是像String那样重新开辟新的内存空间。insert(位置,参数)和append方法是StringBuffer类特有的方法。

<think>好的,我现在需要帮用户总结Java中常用的实用类。首先,用户提到了几个引用,特别是Object、equals方法,以及String和StringBuffer。我应该从这些基础开始,然后扩展到其他常用类。 首先,Object是所有的父,这点必须提到。需要解释它的重要性以及常用方法,比如equals()、hashCode()、toString()。这里要注意对比==和equals的区别,用户可能对这个面试题感兴趣,所以得详细说明。 接下来是String,不可变性是关键点,要举例子说明。然后提到StringBuffer和StringBuilder的区别,用户可能对性能优化有兴趣,所以需要强调线程安全性和使用场景。 然后是包装,比如Integer、Double,自动装箱和拆箱的概念要解释清楚,可能涉及性能问题,比如缓存机制。Math的方法也是常用的,比如数学运算,可以简单列出几个方法。 集合相关虽然用户没有直接提到,但实用类中应该包含,比如Collections和Arrays,它们提供静态方法方便操作集合和数组。时间日期部分,旧版的Date和Calendar需要提及,但也要提到新的java.time包,因为用户可能想知道最新实践。 异常比如Exception和RuntimeException,虽然严格来说不是实用类,但常用,可以简要说明。最后,系统如System和Runtime,还有格式化如DecimalFormat,这些也是实用工具的一部分。 在组织内容时,按照别分点,每个别下举出关键和常用方法,同时引用用户提供的参考文献,比如引用[1]到[4]。需要确保格式正确,数学公式用$...$,独立公式用$$...$$,但在这个回答中可能用不到太多数学公式,但如果有的话要注意。比如在解释hashCode方法时,可能需要用公式说明哈希算法,不过暂时可能不需要。 最后生成相关问题,考虑用户可能的后续问题,比如具体方法的使用场景、区别、最佳实践等。比如String和StringBuilder的区别,如何选择,或者Object的方法如何重写,这些都是常见问题。 现在检查是否有遗漏的常用类,比如Optional、Objects工具,或者IO相关,但用户可能更关注核心,所以先集中在基础常用类。确保每个部分简洁明了,符合用户要求的总结性回答。</think>### Java常用实用类总结 --- #### 一、Object 1. **根基**:所有Java的默认父,未显式继承其他时自动继承Object[^1]。 2. **核心方法**: - `equals()`:判断对象内容是否相等(需重写,默认比较地址)。与`==`(地址比较)形成对比[^2]。 - `hashCode()`:返回对象哈希值,重写`equals()`时需同步重写此方法。 - `toString()`:返回对象字符串表示,默认格式为`名@哈希值`[^4]。 --- #### 二、字符串处理 1. **String**: - **不可变性**:字符串对象创建后不可修改,操作会生成新对象。例如: $$s = "Hello"; \quad s += " World"; \quad // 实际生成新对象$$ - 常用方法:`substring()`、`indexOf()`、`split()`。 2. **StringBuffer/StringBuilder**: - **可变性**:支持原地修改,适用于频繁拼接场景。 - **区别**:StringBuffer线程安全(性能较低),StringBuilder非线程安全(性能高)[^3]。 --- #### 三、包装 1. **基本型包装**:如`Integer`、`Double`,实现基本型与对象的转换。 2. **自动装箱/拆箱**: ```java Integer a = 10; // 自动装箱:Integer.valueOf(10) int b = a; // 自动拆箱:a.intValue() ``` 3. **缓存机制**:`Integer`默认缓存-128~127的值,直接复用对象[^3]。 --- #### 四、数学与工具 1. **Math**: - 静态方法:`Math.abs()`、`Math.sqrt()`、`Math.random()`。 - 常量:`Math.PI`、`Math.E`。 2. **Arrays**: - 数组操作:`Arrays.sort()`、`Arrays.binarySearch()`。 3. **Collections**: - 集合操作:`Collections.sort()`、`Collections.reverse()`。 --- #### 五、时间日期 1. **旧版API**: - `Date`:表示时间戳,已过时。 - `Calendar`:日期计算,但设计复杂。 2. **新版API(java.time包)**: - `LocalDate`:日期(年月日)。 - `LocalDateTime`:日期时间(精确到纳秒)。 - `DateTimeFormatter`:格式化工具。 --- #### 六、其他实用类 1. **System**: - 系统操作:`System.currentTimeMillis()`(获取时间戳)、`System.arraycopy()`(数组复制)。 2. **Runtime**: - JVM运行时信息:`Runtime.getRuntime().freeMemory()`(获取空闲内存)。 3. **DecimalFormat**: - 数字格式化:`new DecimalFormat("#.##").format(3.1415) → "3.14"`。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值