第6章 Java常用类
6.1 包装类(Wrapper Classes)
-
定义:包装类是基本数据类型的对象表示形式,它们允许我们把基本类型当作对象来使用。
- 用途:提供静态方法进行基本类型和字符串之间的转换。
-
自动装箱与拆箱:
- (1)自动装箱:将基本类型自动转换为对应的包装类对象。
- (2)拆箱:将包装类对象自动转换回基本类型。
-
Integer num = 42; // 自动装箱 int value = num; // 自动拆箱
6.2
String类概述不可变性:
String对象一旦创建就不能被修改,任何改变都会生成新的String对象。 -
字符串拼接:使用
+运算符或StringBuilder类进行高效拼接。 -
String greeting = "Hello"; String name = "Alice"; String message = greeting + ", " + name + "!"; // 字符串拼接
6.3
StringBuffer类与StringBuilder类 - 共同点:都是可以修改内容的字符串类,与
String不同,它们的内容可以更改而不必创建新对象。 - 区别:
StringBuffer是线程安全的,所有方法都是同步的;而StringBuilder不是线程安全的,因此性能更好。 - 常用方法:
(1)append(String str):追加字符串。(2)insert(int offset, String str):在指定位置插入字符串。(3)delete(int start, int end):删除指定范围内的字符。(4)reverse():反转字符串内容。- 如果不需要多线程支持,推荐使用
StringBuilder以获得更好的性能。 -
StringBuilder builder = new StringBuilder("Hello"); builder.append(", World!"); System.out.println(builder.toString()); // 输出: Hello, World!6.4 时间和日期相关类
-
Date和Calendar类(遗留API):- 这些类已经被新的
java.time包中的类取代,但在旧代码中仍然常见。
- 这些类已经被新的
-
java.time包(现代API):- Java 8引入了全新的时间日期API,位于
java.time包下,提供了更直观和易用的类。
- Java 8引入了全新的时间日期API,位于
-
常用类:
LocalDate:表示不带时区的日期。LocalTime:表示不带日期的时间。LocalDateTime:结合了日期和时间,但不包含时区信息。ZonedDateTime:包含时区信息的完整日期时间表示。Duration:用于计算两个时间点之间的时间差。Period:用于计算两个日期之间的天数、月数或年数。
-
格式化与解析:
- 使用
DateTimeFormatter类来格式化和解析日期时间字符串。
- 使用
-
常用类:
LocalDate:表示不带时区的日期。LocalTime:表示不带日期的时间。LocalDateTime:结合了日期和时间,但不包含时区信息。ZonedDateTime:包含时区信息的完整日期时间表示。Duration:用于计算两个时间点之间的时间差。Period:用于计算两个日期之间的天数、月数或年数。
-
格式化与解析:
- 使用
DateTimeFormatter类来格式化和解析日期时间字符串。
- 使用
-
示例:
Java深色版本LocalDate today = LocalDate.now(); LocalDateTime now = LocalDateTime.now(); ZonedDateTime zonedNow = ZonedDateTime.now(ZoneId.of("Asia/Shanghai")); Duration duration = Duration.between(LocalTime.of(8, 30), LocalTime.of(9, 45));
6.5 其他常用类
-
Math类:- 提供了数学运算相关的静态方法,如
abs()、max()、min()、sqrt()等。
- 提供了数学运算相关的静态方法,如
-
Random类:- 用于生成伪随机数,提供
nextInt()、nextDouble()等方法。
- 用于生成伪随机数,提供
-
Scanner类:- 从控制台或其他输入源读取用户输入,常用于简单的命令行程序。
-
ArrayList类:- 动态数组实现,允许在运行时调整大小,替代传统的固定大小数组。
-
HashMap类:- 实现键值对映射的数据结构,提供了快速查找、插入和删除操作。
-
File类:- 表示文件或目录路径名的抽象表示,提供了文件操作的相关方法。
-
System类:- 提供了一些系统级的操作,如获取当前时间戳(
currentTimeMillis())、标准输入输出流等。
- 提供了一些系统级的操作,如获取当前时间戳(
-
Thread类和Runnable接口:- 用于创建和管理线程,实现多线程编程。
-
学习心得
StringBuffer和StringBuilder提供了高效的字符串操作能力,尤其适合需要频繁修改字符串的场景 -
遇到的难点及解决方法
- 难点:理解各个类的具体应用场景
- 解决方法:针对每个类编写具体的练习代码,探索其特性和限制。参考官方文档和其他开发者的经验分享,了解如何在实际项目中有效使用这些类。通过不断实践和优化代码,逐渐积累经验,找到最适合自己的解决方案。
-

浙公网安备 33010602011771号