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
接口:- 用于创建和管理线程,实现多线程编程。
-