JDK_API剖析之java.lang包

Posted 技术新高度

tags:

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

java.lang是Java语言的基础包,默认包中的所有来自动import到你写的类中。(按照字母排序)

1、AbstractMethodError

  • 类、错误
  • 自1.0开始有
  • 继承自IncompatibleClassChangeError
  • 当应用程序试图调用一个抽象方法时,抛出此错误。通常由编译器捕获此错误;如果某个类的定义自当前执行方法最后一次编译以后作了不兼容的更改,则此错误只可能在运行时发生。
  • 有带消息和无参构造函数
  • 没有自定义方法

2、Appendable

  • 接口
  • 自1.5开始有
  • 没有父接口
  • Appendable 对于多线程访问而言没必要是安全的。线程安全由扩展和实现此接口的类负责。
  • 提供了一些append函数,返回值是Appendable接口

3、ArithmeticException

  • 类、异常
  • 自1.0开始有
  • 继承自RuntimeException
  • 当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例。
  • 有带消息和无参构造函数
  • 没有自定义函数

4、ArrayIndexOutOfBoundsException

  • 类、异常
  • 自1.0开始有
  • 继承自IndexOutOfBoundsException
  • 用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
  • 有带消息、索引、无参构造函数
  • 没有自定义函数

5、ArrayStoreException

  • 类、异常
  • 自1.0开始有
  • 继承自RuntimeException
  • 试图将错误类型的对象存储到一个对象数组时抛出的异常
  • 有带消息和无参构造函数
  • 没有自定义函数

6、AssertionError

  • 类、错误
  • 自1.4开始有
  • 继承自Error
  • 抛出该异常指示某个断言失败。
  • 有7个单参构造函数
  • 没有自定义函数

7、Boolean

  • final类
  • 自1.0开始有
  • 实现java.io.Serializable,Comparable<Boolean>
  • Boolean 类将基本类型为 boolean 的值包装在一个对象中。一个 Boolean 类型的对象只包含一个类型为 boolean 的字段。此外,此类还为 booleanString 的相互转换提供了许多方法,并提供了处理 boolean 时非常有用的其他一些常量和方法。

8、Byte

  • final类
  • 自1.1开始有
  • 继承自Number,实现Comparable<Byte>
  • Byte 类将基本类型 byte 的值包装在一个对象中。一个 Byte 类型的对象只包含一个类型为 byte 的字段。此外,该类还为 byteString 的相互转换提供了几种方法,并提供了处理 byte 时非常有用的其他一些常量和方法。

  • 常量有byte可取最大值,最小值。

9、Character

  • final类
  • 自1.0开始有
  • 实现java.io.Serializable, Comparable<Character>
  • Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。

10、CharSequence

  • 接口
  • 自1.4开始有
  • 没有父类和接口
  • CharSequencechar 值的一个可读序列。此接口对许多不同种类的 char 序列提供统一的只读访问。

  • 提供了几个字符串常用函数的抽象

11、Class<T>

  • final类
  • 自1.0开始有
  • 实现了java.io.Serializable, GenericDeclaration,Type,AnnotatedElement
  • Class 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注解是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本的 Java 类型(booleanbytecharshortintlongfloatdouble)和关键字 void 也表示为 Class 对象。

  • Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。
  • 有一系列操作Class的函数。

12、ClassCastException

  • 类、异常
  • 自1.0开始有
  • 继承自RuntimeException
  • 当试图将对象强制转换为不是实例的子类时,抛出该异常

13、ClassCircularityError

  • 类、错误
  • 自1.0开始有
  • 继承自LinkageError
  • 当初始化类时检测到类的循环调用的时候,抛出该错误。

14、ClassFormatError

  • 类、错误
  • 自1.0开始有
  • 继承自LinkageError
  • 当 Java 虚拟机试图读取类文件并确定该文件存在格式错误或无法解释为类文件时,抛出该错误。

15、ClassLoader

  • 抽象类
  • 自1.0开始有
  • 无父类和接口
  • 类加载器是负责加载类的对象。ClassLoader 类是一个抽象类。如果给定类的二进制名称,那么类加载器会试图查找或生成构成类定义的数据。一般策略是将名称转换为某个文件名,然后从文件系统读取该名称的“类文件”。每个 Class 对象都包含一个对定义它的 ClassLoader引用

16、ClassNotFoundException

  • 类、异常
  • 自1.0开始有
  • 继承ReflectiveOperationException
  • 当应用程序试图使用以下方法通过字符串名加载类时,Class 类中的 forName 方法;ClassLoader 类中的 findSystemClass 方法;ClassLoader 类中的 loadClass 方法,但是没有找到具有指定名称的类的定义。

17、Cloneable

  • 标记接口
  • 自1.0开始有
  • 无父接口
  • 如果一个类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone 方法,则会导致抛出 CloneNotSupportedException 异常

  • 没有方法定义

18、CloneNotSupportedException

  • 异常类
  • 自1.0开始有
  • 继承自Exception
  • 当调用 Object 类中的 clone 方法复制对象,但该对象的类没有实现 Cloneable 接口时,抛出该异常。重写 clone 方法的应用程序也可能抛出此异常,指示不能或不应复制一个对象。

19、Comparable<T>

  • 接口
  • 自1.0开始有
  • 无父接口
  • 此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法

  • 有一个方法int compareTo(T o)。比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。

20、Compiler

  • final类
  • 自1.0开始有
  • 无父类和接口
  • Compiler 类主要支持 Java 到本机代码的编译器及相关服务。根据设计,Compiler 类不做任何事情,它充当一个 JIT 编译器实现的占位符。

  • 有几个本地方法

21、Double

  • final类
  • 自1.0开始有
  • 集成自Number,实现Comparable<Double>
  • Double 类在对象中包装一个基本类型 double 的值。每个 Double 类型的对象都包含一个 double 类型的字段。此外,该类还提供多个方法,可以将 double 转换为 String,将 String 转换为 double,也提供了其他一些处理 double 时有用的常量和方法。

22、Enum<E extends Enum<E>>

  • 抽象类
  • 自1.5开始有
  • 实现Comparable<E>, Serializable
  • 这是所有 Java 语言枚举类型的公共基本类。

  • 单独的构造方法。程序员无法调用此构造方法。该构造方法用于由响应枚举类型声明的编译器发出的代码。

23、EnumConstantNotPresentException

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

24、Error

  • 类、错误
  • 自1.0开始有
  • 继承Throwable
  • ErrorThrowable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件

25、Exception

  • 类、异常
  • 自1.0开始有
  • 继承Throwable
  • Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。

26、ExceptionInInitializerError

  • 类、错误
  • 自1.1开始有
  • 继承LinkageError
  • 静态初始化程序中发生意外异常的信号。抛出 ExceptionInInitializerError 表明在计算静态初始值或静态变量的初始值期间发生异常。

27、Float

  • final类
  • 自1.0开始有
  • 继承Number,实现Comparable<Float>
  • Float 类在对象中包装一个基本类型 float 的值。Float 类型的对象包含一个 float 类型的字段。此外,此类提供了几种方法,可将 float 类型与 String 类型互相转换,还提供了处理 float 类型时非常有用的其他一些常量和方法。

28、IllegalAccessException

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

29、IllegalArgumentException

  • 异常类
  • 自1.0开始有
  • 继承RuntimeException
  • 抛出的异常表明向方法传递了一个不合法或不正确的参数。

30、IllegalMonitorStateException

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

31、IllegalStateException

  • 异常类
  • 自1.1开始有
  • 继承RuntimeException
  • 在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。

32、IllegalThreadStateException

  • 异常类
  • 自1.0开始有
  • 继承IllegalArgumentException
  • 指示线程没有处于请求操作所要求的适当状态时抛出的异常。例如,请参见 Thread 类中的 suspendresume 方法。

33、IncompatibleClassChangeError

  • 类、错误
  • 自1.0开始有
  • 继承LinkageError
  • 在某些类定义中出现不兼容的类更改时抛出该异常。某些目前执行的方法所依赖的类定义已发生了变化。

34、IndexOutOfBoundsException

  • 异常类
  • 自1.0开始有
  • 继承RuntimeException
  • 指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。应用程序可以为这个类创建子类,以指示类似的异常。

35、InheritableThreadLocal<T>

  • 自1.2开始有
  • 继承ThreadLocal<T>
  • 该类扩展了 ThreadLocal,为子线程提供从父线程那里继承的值:在创建子线程时,子线程会接收所有可继承的线程局部变量的初始值,以获得父线程所具有的值。通常,子线程的值与父线程的值是一致的;但是,通过重写这个类中的 childValue 方法,子线程的值可以作为父线程值的一个任意函数。当必须将变量(如用户 ID 和 事务 ID)中维护的每线程属性(per-thread-attribute)自动传送给创建的所有子线程时,应尽可能地采用可继承的线程局部变量,而不是采用普通的线程局部变量。

36、InstantiationError

  • 类、错误
  • 自1.0开始有
  • 继承RuntimeException
  • 当应用程序试图使用 Java 的 new 结构来实例化一个抽象类或一个接口时,抛出该异常。通常由编译器捕获此错误;如果类定义中存在不兼容的更改,则此错误将只可能发生在运行时。

37、InstantiationError

  • 类、错误
  • 自1.0开始有
  • 继承IncompatibleClassChangeError
  • 当应用程序试图使用 Java 的 new 结构来实例化一个抽象类或一个接口时,抛出该异常。通常由编译器捕获此错误;如果类定义中存在不兼容的更改,则此错误将只可能发生在运行时。

38、InstantiationException

  • 类、异常
  • 自1.0开始有
  • 继承Exception
  • 当应用程序试图使用 Class 类中的 newInstance 方法创建一个类的实例,而指定的类对象无法被实例化时,抛出该异常。实例化失败有很多原因,包括但不仅限于以下原因:类对象表示一个抽象类、接口、数组类、基本类型、void,类没有非 null 构造方法

39、Integer

  • final类
  • 自1.0开始有
  • 继承Number,实现Comparable<Integer>
  • Integer 类在对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段。此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。

39、InternalError

  • 类、错误
  • 自1.0开始有
  • 继承VirtualMachineError
  • 该异常指示 Java 虚拟机中出现一些意外的内部错误。

40、InternalError

  • 类、错误
  • 自1.0开始有
  • 继承VirtualMachineError
  • 该异常指示 Java 虚拟机中出现一些意外的内部错误。

 

以上是关于JDK_API剖析之java.lang包的主要内容,如果未能解决你的问题,请参考以下文章

JDK_API剖析之java.io包

Java-Object类JDK_API文档查询

Java集合之Collections 剖析

JDK_API的使用方法

java.lang.IllegalStateException:片段未附加到活动

在 Android 片段中获取 Java.Lang.NullPointerException