Java 核心类库中常用类和工具类的实现和实践。
1. Java 核心类库有哪些重要的包?它们的作用是什么?
java.lang
:包含 Java 核心类,如String
、Math
、Object
、Thread
等。java.util
:包含常用的工具类和集合类,如ArrayList
、HashMap
、Collections
、Date
等。java.io
:用于输入输出操作,如文件读写,包含类如File
、InputStream
、OutputStream
等。java.nio
:提供非阻塞 I/O 操作,如Buffer
、Channel
。java.net
:用于网络编程,如Socket
、URL
。java.time
:提供日期和时间的现代化 API。java.sql
:用于数据库编程。java.util.concurrent
:用于并发编程。
2. Object
类有哪些重要的方法?这些方法的用途是什么?
Object
是所有类的父类,以下是其重要方法:
equals(Object obj)
:比较两个对象是否相等。hashCode()
:返回对象的哈希值,用于集合中的快速访问(如HashMap
)。toString()
:返回对象的字符串表示。clone()
:创建并返回对象的副本。getClass()
:返回对象的运行时类。wait()
、notify()
、notifyAll()
:用于线程间通信。
3. String
类为什么是不可变的?
String
是不可变的(immutable
),主要原因如下:
- 安全性:在多线程环境下,不可变对象是线程安全的。
- 性能优化:
String
被广泛用于字符串池(String Pool)优化,重复的字符串共享相同的对象。 - 哈希值缓存:
String
的哈希值是不可变的,因此常用于集合(如HashMap
)。
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1