jdk源码包 java.lang详解
包 java.lang 描述
提供了对 Java 编程语言设计至关重要的类。
最重要的类是 Object,它是类层次结构的根,以及 Class,在运行时表示类的实例。
通常需要将原始类型的值表示为对象。包装类 Boolean、Character、Integer、Long、Float 和 Double 就是为此目的而存在的。例如,Double 类的对象包含一个 double 类型的字段,以这种方式表示该值,使得可以将对它的引用存储在引用类型的变量中。这些类还提供了许多方法用于在原始值之间进行转换,并支持 equals 和 hashCode 等标准方法。Void 类是一个不可实例化的类,它持有一个表示 void 类型的 Class 对象的引用。
Math 类提供了常用的数学函数,如正弦、余弦和平方根。String、StringBuffer 和 StringBuilder 类同样提供了对字符串的常用操作。
ClassLoader、Process、ProcessBuilder、Runtime、SecurityManager 和 System 类提供了管理类的动态加载、创建外部进程、主机环境查询(如当前时间)和执行安全策略等“系统操作”。
Throwable 类包括可能被 throw 语句抛出的对象。Throwable 的子类表示错误和异常。
字符编码 java.nio.charset.Charset 类的规范描述了字符编码的命名约定,以及每个 Java 平台实现必须支持的标准编码集。
接口概览
接口 | 描述 |
---|---|
Appendable | 可以向其追加字符序列和值的对象。 |
AutoCloseable | 一个可能持有资源(如文件或套接字句柄)直到关闭的对象。 |
CharSequence | CharSequence 是一个可读取的字符序列。 |
Cloneable | 实现 Cloneable 接口的类,表明 Object.clone() 方法可以对该类的实例进行逐个字段的复制。 |
Comparable | 该接口对实现它的每个类的对象施加了一种全序。 |
Iterable | 实现此接口允许对象成为“for-each循环”语句的目标。 |
Readable | Readable 是字符源。 |
Runnable | Runnable 接口应该由任何希望由线程执行的类的实例实现。 |
Thread.UncaughtExceptionHandler | 当线程因未捕获的异常而突然终止时调用处理程序的接口。 |
类概览
类 | 描述 |
---|---|
Boolean | Boolean 类将原始类型 boolean 的值包装在对象中。 |
Byte | Byte 类将原始类型 byte 的值包装在对象中。 |
Character | Character 类将原始类型 char 的值包装在对象中。 |
Character.Subset | 该类的实例表示 Unicode 字符集的特定子集。 |
Character.UnicodeBlock | 表示 Unicode 规范中字符块的一系列字符子集。 |
Class | Class 类的实例表示正在运行的 Java 应用程序中的类和接口。 |
ClassLoader | 类加载器是负责加载类的对象。 |
ClassValue | 延迟关联计算值与(可能)每个类型。 |
Compiler | Compiler 类用于支持 Java 到本机代码编译器和相关服务。 |
Double | Double 类将原始类型 double 的值包装在对象中。 |
Enum<E extends Enum> | 这是所有 Java 语言枚举类型的通用基类。 |
Float | Float 类将原始类型 float 的值包装在对象中。 |
InheritableThreadLocal | 此类扩展 ThreadLocal,提供从父线程到子线程的值的继承:当创建子线程时,子线程接收父线程对所有可继承线程局部变量具有的初始值。 |
Integer | Integer 类将原始类型 int 的值包装在对象中。 |
Long | Long 类将原始类型 long 的值包装在对象中。 |
Math | Math 类包含执行基本数值操作的方法,如基本指数、对数、平方根和三角函数。 |
Number | Number 抽象类是代表可转换为原始类型 byte、double、float、int、long 和 short 的平台类的超类。 |
Object | Object 类是类层次结构的根。 |
Package | Package 对象包含有关 Java 包的实现和规范的版本信息。 |
Process | ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回一个 Process 的子类的实例,用于控制进程并获取有关它的信息。 |
ProcessBuilder | 此类用于创建操作系统进程。 |
ProcessBuilder.Redirect | 表示子进程输入源或子进程输出目标。 |
Runtime | 每个 Java 应用程序都有一个 Runtime 类的单个实例,允许应用程序与其运行环境进行交互。 |
RuntimePermission | 此类用于运行时权限。 |
SecurityManager | 安全管理器是一个允许应用程序实施安全策略的类。 |
Short | Short 类将原始类型 short 的值包装在对象中。 |
StackTraceElement | 堆栈跟踪中的元素,由 Throwable.getStackTrace() 返回。 |
StrictMath | StrictMath 类包含执行基本数值操作的方法,如基本指数、对数、平方根和三角函数。 |
String | String 类表示字符字符串。 |
StringBuffer | 一个线程安全的、可变的字符序列。 |
StringBuilder | 一个可变的字符序列。 |
System | System 类包含几个有用的类字段和方法。 |
Thread | 线程是程序中的执行线程。 |
ThreadGroup | 线程组表示一组线程。 |
ThreadLocal | 此类提供线程局部变量。 |
Throwable | Throwable 类是 Java 语言中所有错误和异常的超类。 |
Void | Void 类是一个不可实例化的占位符类,用于保存表示 Java 关键字 void 的 Class 对象的引用。 |
枚举概览
枚举 | 描述 |
---|---|
Character.UnicodeScript | 一组表示 Unicode 标准附录#24 中定义的字符脚本的字符子集。 |
ProcessBuilder.Redirect.Type | ProcessBuilder.Redirect 的类型。 |
Thread.State | 线程状态。 |
异常概览
异常 | 描述 |
---|---|
ArithmeticException | 当发生异常的算术条件时抛出。 |
ArrayIndexOutOfBoundsException | 表示使用非法索引访问数组。 |
ArrayStoreException | 表示尝试将错误类型的对象存储到对象数组中。 |
ClassCastException | 指示代码尝试将对象转换为其不是实例的子类。 |
ClassNotFoundException | 当应用程序尝试通过字符串名称加载类时抛出:类 Class 中的 forName 方法。 |
CloneNotSupportedException | 表示调用 Object 类中的 clone 方法克隆对象,但该对象的类未实现 Cloneable 接口。 |
EnumConstantNotPresentException | 当应用程序尝试按名称访问枚举常量,并且枚举类型不包含指定名称的常量时抛出。 |
Exception | Exception 类及其子类是 Throwable 的一种形式,表示合理的应用程序可能要捕获的条件。 |
IllegalAccessException | 在应用程序试图通过反射方式创建实例(除数组之外)、设置或获取字段或调用方法时,但当前执行的方法无权访问指定类、字段、方法或构造函数的定义时抛出。 |
IllegalArgumentException | 表示方法已传递了非法或不适当的参数。 |
IllegalMonitorStateException | 表示线程在没有拥有指定监视器的情况下等待该对象的监视器,或者通知其他正在等待该对象的监视器时抛出。 |
IllegalStateException | 表示方法在非法或不适当的时间被调用。 |
IllegalThreadStateException | 表示线程对请求的操作处于不适当的状态。 |
IndexOutOfBoundsException | 表示某种索引(例如数组、字符串或向量的索引)超出范围。 |
InstantiationException | 当应用程序尝试使用 Class 类的 newInstance 方法创建类的实例,但无法实例化指定的类对象时抛出。 |
InterruptedException | 当线程正在等待、休眠或以其他方式忙碌,并且线程被中断时(在活动期间或之前)抛出。 |
NegativeArraySizeException | 如果应用程序尝试创建具有负大小的数组,则抛出该异常。 |
NoSuchFieldException | 指示类没有指定名称的字段。 |
NoSuchMethodException | 当找不到特定方法时抛出。 |
NullPointerException | 当应用程序尝试在需要对象的情况下使用 null 时抛出。 |
NumberFormatException | 表示应用程序尝试将字符串转换为数值类型之一,但该字符串没有适当的格式。 |
ReflectiveOperationException | 核心反射中由反射操作引发的异常的公共超类。 |
RuntimeException | RuntimeException 是可以在 Java 虚拟机正常运行期间抛出的那些异常的超类。 |
SecurityException | 安全管理器抛出以指示安全性违规。 |
StringIndexOutOfBoundsException | String 方法抛出,表示索引为负数或大于字符串大小。 |
TypeNotPresentException | 当应用程序尝试使用表示类型名称的字符串访问类型,但找不到具有指定名称的类型的定义时抛出。 |
UnsupportedOperationException | 表示不支持请求的操作。 |
错误概览
错误 | 描述 |
---|---|
AbstractMethodError | 当应用程序尝试调用抽象方法时抛出。 |
AssertionError | 表示断言失败。 |
BootstrapMethodError | 表示 invokedynamic 指令无法找到其引导方法,或者引导方法未能为调用站点提供正确的方法类型目标。 |
ClassCircularityError | 在加载类时,Java 虚拟机检测到超类层次结构中的循环性时抛出。 |
ClassFormatError | 当 Java 虚拟机尝试读取类文件并确定该文件格式有误或无法解释为类文件时抛出。 |
Error | Error 是 Throwable 的子类,表示严重问题,合理的应用程序不应该尝试捕获。 |
ExceptionInInitializerError | 表示静态初始化器中发生了意外异常。 |
IllegalAccessError | 如果应用程序尝试访问或修改字段,或者调用它没有访问权限的方法时抛出。 |
IncompatibleClassChangeError | 当某个类定义发生不兼容的类更改时抛出。 |
InstantiationError | 当应用程序尝试使用 Java 的 new 构造来实例化抽象类或接口时抛出。 |
InternalError | 表示 Java 虚拟机发生了一些意外的内部错误。 |
LinkageError | LinkageError 的子类指示一个类对另一个类有某种依赖关系;但是,在前者类编译后,后者类已经发生了不兼容的更改。 |
NoClassDefFoundError | 如果 Java 虚拟机或 ClassLoader 实例尝试加载类的定义(作为正常方法调用的一部分或使用 new 表达式创建新实例的一部分),并且找不到类的定义,则抛出该异常。 |
NoSuchFieldError | 如果应用程序尝试访问或修改对象的指定字段,而该对象不再具有该字段,则抛出该异常。 |
NoSuchMethodError | 当应用程序尝试调用一个类的指定方法(静态或实例),而该类不再具有该方法的定义时抛出。 |
OutOfMemoryError | 当 Java 虚拟机无法分配对象,因为内存已耗尽,并且垃圾回收器无法提供更多内存时抛出。 |
StackOverflowError | 当应用程序递归太深时导致堆栈溢出时抛出。 |
ThreadDeath | 在受影响的线程中调用(已弃用的)Thread.stop() 方法时,会抛出 ThreadDeath 的实例。 |
UnknownError | 当 Java 虚拟机发生未知但严重的异常时抛出。 |
UnsatisfiedLinkError | 如果 Java 虚拟机无法找到声明为本机的方法的适当本地语言定义,则抛出该异常。 |
UnsupportedClassVersionError | 当 Java 虚拟机尝试读取类文件并确定文件中的主要版本和次要版本号不受支持时抛出。 |
VerifyError | 当“验证器”检测到类文件存在某种内部不一致性或安全问题时抛出。 |
VirtualMachineError | 表示 Java 虚拟机出现故障或资源不足,无法继续运行。 |
注解类型概览
注解类型 | 描述 |
---|---|
Deprecated | 使用 @Deprecated 注释的程序元素是不建议使用的,通常是因为它是危险的,或者因为存在更好的替代方案。 |
FunctionalInterface | 用于指示接口类型声明意图作为 Java 语言规范定义的函数式接口。 |
Override | 指示方法声明意图覆盖超类型中的方法声明。 |
SafeVarargs | 程序员断言,注解方法或构造函数的主体在其可变参数上执行不安全操作。 |
SuppressWarnings | 指示在注释元素(以及所有包含在注释元素中的程序元素)中应该禁止命名的编译器警告。 |