0001JDK源码分析之java.lang包结构图

Posted Java框架源码分析

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0001JDK源码分析之java.lang包结构图相关的知识,希望对你有一定的参考价值。

本文主要阐述java.lang包的结构图,建立一个对java.lang包的整体认识,这是JDK帮助文档的一部分,如果想深入了解,可以查看帮助文档进一步学习。

java.lang

描述:提供利用 Java编程语言进行程序设计的基础类。

 

java.lang包结构由接口、类、枚举、异常、错误以及注释类型五部分组成,各部分简要介绍如下:

接口摘要

Appendable

能够被添加 char 序列和值的对象。

CharSequence

CharSequence 是 char 值的一个可读序列。

Cloneable

此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。

Comparable<T>

此接口强行对实现它的每个类的对象进行整体排序。

Iterable<T>

实现这个接口允许对象成为 "foreach" 语句的目标。

Readable

Readable 是一个字符源。

Runnable

Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。

Thread.UncaughtExceptionHandler

当 Thread 因未捕获的异常而突然终止时,调用处理程序的接口。

 

类摘要

Boolean

Boolean 类将基本类型为 boolean 的值包装在一个对象中。

Byte

Byte 类将基本类型 byte 的值包装在一个对象中。

Character

Character 类在对象中包装一个基本类型 char 的值。

Character.Subset

此类的实例表示 Unicode 字符集的特定子集。

Character.UnicodeBlock

表示 Unicode 规范中字符块的一系列字符子集。

Class<T>

Class 类的实例表示正在运行的 Java 应用程序中的类和接口。

ClassLoader

类加载器是负责加载类的对象。

Compiler

Compiler 类主要支持 Java 到本机代码的编译器及相关服务。

Double

Double 类在对象中包装一个基本类型 double 的值。

Enum<E extends  Enum<E>>

这是所有 Java 语言枚举类型的公共基本类。

Float

Float 类在对象中包装一个基本类型 float 的值。

InheritableThreadLocal<T>

该类扩展了 ThreadLocal,为子线程提供从父线程那里继承的值:在创建子线程时,子线程会接收所有可继承的线程局部变量的初始值,以获得父线程所具有的值。

Integer

Integer 类在对象中包装了一个基本类型 int 的值。

Long

Long 类在对象中包装了基本类型 long 的值。

Math

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

Number

抽象类 Number 是 BigDecimal、BigInteger、Byte、Double、Float、Integer、Long  和 Short 类的超类。

Object

类 Object 是类层次结构的根类。

Package

Package 对象包含有关 Java 包的实现和规范的版本信息。

Process

ProcessBuilder.start()Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获得相关信息。

ProcessBuilder

此类用于创建操作系统进程。

Runtime

每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。

RuntimePermission

该类用于运行时权限。

SecurityManager

安全管理器是一个允许应用程序实现安全策略的类。

Short

Short 类在对象中包装基本类型 short 的值。

StackTraceElement

堆栈跟踪中的元素,它由 Throwable.getStackTrace() 返回。

StrictMath

StrictMath 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

String

String 类代表字符串。

StringBuffer

线程安全的可变字符序列。

StringBuilder

一个可变的字符序列。

System

System 类包含一些有用的类字段和方法。

Thread

线程 是程序中的执行线程。

ThreadGroup

线程组表示一个线程的集合。

ThreadLocal<T>

该类提供了线程局部 (thread-local) 变量。

Throwable

Throwable 类是 Java 语言中所有错误或异常的超类。

Void

Void 类是一个不可实例化的占位符类,它持有对表示 Java 关键字  void 的 Class 对象的引用。

 

枚举摘要

Thread.State

线程状态。

 

异常摘要

ArithmeticException

当出现异常的运算条件时,抛出此异常。

ArrayIndexOutOfBoundsException

用非法索引访问数组时抛出的异常。

ArrayStoreException

试图将错误类型的对象存储到一个对象数组时抛出的异常。

ClassCastException

当试图将对象强制转换为不是实例的子类时,抛出该异常。

ClassNotFoundException

当应用程序试图使用以下方法通过字符串名加载类时,抛出该异常: Class 类中的 forName 方法。

CloneNotSupportedException

当调用 Object 类中的 clone 方法复制对象,但该对象的类无法实现  Cloneable 接口时,抛出该异常。

EnumConstantNotPresentException

当应用程序试图通过名称和枚举类型访问那些不包含具有指定名称的常量的枚举常量时,抛出该异常。

Exception

Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。

IllegalAccessException

当应用程序试图反射性地创建一个实例(而不是数组)、设置或获取一个字段,或者调用一个方法,但当前正在执行的方法无法访问指定类、字段、方法或构造方法的定义时,抛出 IllegalAccessException。

IllegalArgumentException

抛出的异常表明向方法传递了一个不合法或不正确的参数。

IllegalMonitorStateException

抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程。

IllegalStateException

在非法或不适当的时间调用方法时产生的信号。

IllegalThreadStateException

指示线程没有处于请求操作所要求的适当状态时抛出的异常。

IndexOutOfBoundsException

指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。

InstantiationException

当应用程序试图使用 Class 类中的 newInstance  方法创建一个类的实例,而指定的类对象无法被实例化时,抛出该异常。

InterruptedException

当线程在活动之前或活动期间处于正在等待、休眠或占用状态且该线程被中断时,抛出该异常。

NegativeArraySizeException

如果应用程序试图创建大小为负的数组,则抛出该异常。

NoSuchFieldException

类不包含指定名称的字段时产生的信号。

NoSuchMethodException

无法找到某一特定方法时,抛出该异常。

NullPointerException

当应用程序试图在需要对象的地方使用 null 时,抛出该异常。

NumberFormatException

当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。

RuntimeException

RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。

SecurityException

由安全管理器抛出的异常,指示存在安全侵犯。

StringIndexOutOfBoundsException

此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小。

TypeNotPresentException

当应用程序试图使用表示类型名称的字符串对类型进行访问,但无法找到带有指定名称的类型定义时,抛出该异常。

UnsupportedOperationException

当不支持请求的操作时,抛出该异常。

 

错误摘要

AbstractMethodError

当应用程序试图调用一个抽象方法时,抛出此错误。

AssertionError

抛出该异常指示某个断言失败。

ClassCircularityError

当初始化类时检测到类的循环调用的时候,抛出该错误。

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 虚拟机无法找到声明为 native 的方法的适当本地语言定义时,抛出该错误。

UnsupportedClassVersionError

当 Java 虚拟机试图读取一个类文件,并确定文件的主辅版本号不受支持时,抛出该错误。

VerifyError

当“校验器”检测到一个类文件虽然格式正确,但包含着一些内部不一致性或安全性问题时,抛出该错误。

VirtualMachineError

当 Java 虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。

 

注释类型摘要

Deprecated

用 @Deprecated 注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。

Override

表示一个方法声明打算重写超类中的另一个方法声明。

SuppressWarnings

指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。

 

感谢你的耐心阅读!

以上是关于0001JDK源码分析之java.lang包结构图的主要内容,如果未能解决你的问题,请参考以下文章

简单看看jdk7源码之java.lang包01

0002JDK源码分析之Appendable接口家族

java基础系列之ConcurrentHashMap源码分析(基于jdk1.8)

设计模式之JDK动态代理源码分析

JDK源码分析-Integer

JDK源码分析-Integer