java.lang 包详解
java.lang
是 Java 最核心的包,默认自动导入到所有 Java 程序中。它包含 Java 语言的基础类和接口,是 Java 编程的基础。
1. 核心类概览
java.lang
包含以下关键类:
类别 | 主要类 |
---|---|
基础类 | Object , Class , Void |
基本数据类型包装类 | Integer , Long , Double , Boolean 等 |
字符串处理 | String , StringBuilder , StringBuffer |
系统相关 | System , Runtime |
数学运算 | Math , StrictMath |
异常处理 | Throwable , Exception , Error , RuntimeException |
线程相关 | Thread , Runnable , ThreadLocal |
枚举和注解 | Enum , Annotation |
函数式接口 | FunctionalInterface (Java 8+) |
2. 关键类详解
(1)Object
类
-
所有类的超类,Java 中所有类都直接或间接继承
Object
。 -
核心方法:
boolean equals(Object obj) // 比较对象是否相等 int hashCode() // 返回对象的哈希码 String toString() // 返回对象的字符串表示 Class<?> getClass() // 返回对象的运行时类 protected Object clone() // 创建并返回对象的副本 void notify() // 唤醒等待该对象监视器的线程 void wait() // 使当前线程等待
(2)String
类
-
不可变字符序列,线程安全。
-
常用方法:
char charAt(int index) // 返回指定索引的字符 int length() // 返回字符串长度 String substring(int begin, int end) // 返回子串 boolean equals(Object obj) // 比较字符串内容 int compareTo(String another) // 按字典序比较 String toLowerCase() // 转小写 String toUpperCase() // 转大写 String trim() // 去除首尾空格 String[] split(String regex) // 按正则分割字符串 boolean startsWith(String prefix) // 检查前缀 boolean endsWith(String suffix) // 检查后缀
(3)StringBuilder
和 StringBuffer
-
可变字符序列:
-
StringBuilder
(非线程安全,性能更高) -
StringBuffer
(线程安全,性能稍低)
-
-
常用方法:
append(String str) // 追加字符串 insert(int offset, String str) // 插入字符串 delete(int start, int end) // 删除子串 reverse() // 反转字符串 toString() // 转为 String
(4)System
类
-
提供系统级操作:
static long currentTimeMillis() // 当前时间(毫秒) static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) // 数组拷贝 static void exit(int status) // 终止 JVM static Properties getProperties() // 获取系统属性 static String lineSeparator() // 获取换行符
(5)Math
类
-
数学运算工具:
static double sin(double a) // 正弦 static double cos(double a) // 余弦 static double sqrt(double a) // 平方根 static double pow(double a, double b) // a 的 b 次方 static int max(int a, int b) // 最大值 static int min(int a, int b) // 最小值 static double random() // 返回 [0.0, 1.0) 随机数
(6)Thread
类
-
线程管理:
void start() // 启动线程 void run() // 线程执行体 static void sleep(long millis) // 线程休眠 void join() // 等待线程终止 static Thread currentThread() // 获取当前线程
(7)Class
类
-
运行时类信息:
static Class<?> forName(String className) // 加载类 Object newInstance() // 创建类实例(已废弃,推荐用 Constructor) String getName() // 获取类名 Class<?> getSuperclass() // 获取父类
(8)Throwable
类
-
所有错误(
Error
)和异常(Exception
)的超类:String getMessage() // 返回错误信息 void printStackTrace() // 打印堆栈跟踪
3. 基本数据类型包装类
Java 为每个基本数据类型提供了包装类:
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
常用方法:
Integer.parseInt("123") // 字符串转 int
Double.valueOf("3.14") // 字符串转 Double
Character.isDigit('9') // 判断是否是数字
Boolean.TRUE // 返回 true
4. 自动装箱(Autoboxing)和拆箱(Unboxing)
Java 5+ 支持自动转换基本类型和包装类:
Integer num = 10; // 自动装箱(int → Integer)
int n = num; // 自动拆箱(Integer → int)
5. 异常体系
java.lang
定义了 Java 的异常体系:
Throwable
├── Error (如 `OutOfMemoryError`)
└── Exception├── RuntimeException (如 `NullPointerException`)└── Checked Exception (如 `IOException`)
6. 总结
-
java.lang
是 Java 最核心的包,包含所有基础类。 -
Object
是所有类的父类,提供equals()
,hashCode()
,toString()
等方法。 -
String
是不可变的,StringBuilder
和StringBuffer
是可变字符串。 -
System
提供系统操作,Math
提供数学计算。 -
基本数据类型有对应的包装类(如
Integer
,Double
)。 -
异常体系基于
Throwable
,分为Error
和Exception
。
java.lang
是 Java 编程的基础,几乎所有 Java 程序都会用到它。