4.1. 接口
java.lang.Appendable
可追加(append)接口。实现了该接口的类的对象实例具有可向其追加字符或字符序列的能力。希望能够接收Formatter输出的类必须实现该接口。
java.lang.CharSequence
CharSequence是指可阅读的字符序列。该接口为只读访问各种类型的字符序列提供了统一的方法。
java.lang.Cloneable
可克隆接口。实现了该接口的类具有克隆的能力。可以通过Object.clone()方法将类的实例对象的域(field)逐个复制到同一个类的另外一个实例中。如果使用Object.clone()方法克隆没有实现该接口的类的实例对象,将会触发CloneNotSupportedException异常。
java.lang.Comparable
可比较接口。实现了该接口的类的两个实例对象之间可以进行比较。比较结果负数(-1)、0、正数(1)分别代表比较对象与被比较对象之间的关系分别是小于、等于、大于。可对实现了该接口的类的多个实例对象进行排序。
java.lang.Iterable
可迭代接口。实现了该接口的类一般作为容器,且具有提供依次访问被包容对象功能的能力。
java.lang.Readable
可读取接口。客户对象可以从实现了该接口的类的实例对象中读取字符。
java.lang.Runable
可运行接口。实现了该接口的类的实例对象将在一个单独的线程(thread)中被运行。没有扩展Thread的类可以通过实现该接口,开发出多线程服务的能力。
java.lang.Thread.UncaughtExceptionHandler
线程未捕获异常控制器接口。在线程执行过程中引发了异常而没有捕获时, 实现了该接口的类可以作为控制器处理该状况。
4.2. 类
java.lang.Boolean
将原始数据类型boolean对象化的类。该类的实例对象除了包含一个boolean值之外,还提供boolean String之间转化等处理boolean的方法。
java.lang.Byte
将原始数据类型byte对象化的类。该类的实例对象除了包含一个byte值之外,还提供byte与其他类型之间转化等处理byte的方法。
java.lang.Character
将原始数据类型char对象化的类。该类的实例对象除了包含一个char值之外,还提供了处理字符的方法。Java 2平台在字符数组、字符串或StringBuffer中使用UTF-16表达字符。UTF-16使用16至21位二进制位表达,即从\u0000到\u10FFFF。\u0000到\uFFFF表示基本的16位字符,\u10000到\u10FFFF表示辅助字符(supplymentary characters)。 辅助字符由一个高位替代符(high-surrogate )和一个低位替代符(low-surrogate )共同组成。高位替代符使用一个\uD800到\uDBFF之间的字符表示;低位替代符使用一个\uDC00到\uDFFF之间的字符表示。
假设:A代表辅助字符(SC)的码点值; B代表SC的高位替代符的码点(Unicode code point)值; C代表SC的低位替代符的码点值。那么下面的等式成立:A = (B - 0xD800) << 10 + (C - 0xDC00) + 0x10000
在将Unicode还原为可阅读字符的时候,当且仅当当前字符时高位替代符,下一字符是低位替代符时,此连续的两个字符被解释为辅助字符。
java.lang.Character.Subset
该类的实例对表达某个Unicode字符集的特定子集。
java.lang.Character.UnicodeBlock
该类的实例对象表达一族相关的子Unicode字符集。这些子字符集通常服务于相同的目的。
java.lang.Class
该类的实例对象表达Java应用中正在运行的类或者接口。该类没有公共的构造方法,所以不能由Java虚拟机自动实例化,而是由ClassLoader实例化。
java.lang.ClassLoader
该类是Java类加载器,负责根据制定的二进制名称加载相应的类。在Java语言规范中规定,类、接口或原始数据类型有三种命名,他们分别是许可名(fully qualified name)、规范名(canonical name)、二进制名(binary name)。不同的类加载器根据类的二进制名从不同的源中读取二进制的类“*.class”信息,并生成Class对象。每个类中都有对其加载器的引用。
package org.javaplus.jdkoverview;
public class OuterClass {
public class InnerClass {
public InnerClass() {}
}
public OutterClass() {}
}
public class SubClass extends OuterClass {
public SubClass() {}
}
org.javaplus.jdkoverview.SubClass的内部类(InnerClass)的名称
许可名: org.javaplus.jdkoverview.SubClass.InnerClass
规范名: org.javaplus.jdkoverview.OuterClass.InnerClass
二进制名: org.javaplus.jdkoverview.OuterClass$InnerClass
java.lang.Compiler
该类提供Java到本机代码的支持,及相关服务。该类只是JIT编译器(Java Just-in-Time Compiler)的一个占位符而已。如果JVM(Java Virtual Machine )第一次启动时未成功加载JIT编译器,则本类不做任何工作。
java.lang.Double
将原始数据类型double对象化的类。该类的实例对象除了包含一个double值之外,还提供double与其他类型之间转化等处理double的方法。
java.lang.Enum
Java语言中所有枚举类型的公共基类。
java.lang.Float
将原始数据类型float对象化的类。该类的实例对象除了包含一个float值之外,还提供float与其他类型之间转化等处理float的方法。
java.lang.InheritableThreadLocal
该类扩展了java.lang.ThreadLocal类。为子线程(Thread)提供创建时从其父线程获得可继承线程局部变量(inheritable thread-local variables )的能力。子线程可以任意处理从父线程继承来的局部变量,而不影响父线程。使用可继承线程局部变量可以提高线程局部变量的维护效率。
java.lang.Integer
将原始数据类型int对象化的类。该类的实例对象除了包含一个int值之外,还提供int与其他类型之间转化等处理int的方法。
java.lang.Long
将原始数据类型long对象化的类。该类的实例对象除了包含一个long值之外,还提供long与其他类型之间转化等处理long的方法。
java.lang.Math
该类提供了基本的数学运算方法。譬如:乘方、开方、指数、角度运算等。为了提高性能,该类的方法大多损失了精确度。更精确的结果可以通过java.lang.StrictMath的相应方法得到。
java.lang.Number
该类是java.math.BigDecimal、java.math.BigInteger、java.lang.Byte、java.lang.Double、java.lang.Float、java.lang.Integer、java.lang.Long、java.lang.Short等类的父类。扩展该类的子类必须实现将自己所代表的数字转换为byte、double、float、int、long、short等原始类型数值的方法。这些转换方法可能会对数值采取四舍五入或截断的策略,从而损失数值的正确性。
java.lang.Object
该类的对象是Java平台中所有其他类对象扩展层次树的根。所有其他类都直接或者间接地扩展了该类。该类提供了缺省的对象操作方法:
clone()
返回一个该对象的复制品。
equals()
比较该对象是否与指定对象“相等”,比较的规则完全取决于各个类的实现。
finalize()
垃圾回收器回收该对象时调用本方法。
getClass()
返回该对象的运行时类。
hashCode()
返回该对象的散列代码值。不同的对象将返回不同的值。因此该值可用于唯一标识对象
notify()
从该对象的等候线程集中任意唤醒一个监控该对象的线程。监控一个对象(obj)的方法有三种:第一种,执行obj的同步方法;第二种,执行obj类对象的同步方法;第三种,执行obj的同步代码段。
notifyAll()
从该对象的等候线程集中任意唤醒所有监控该对象的线程,各个线程通过竞争获得对象监控器的所有权,从而继续执行被暂停的动作。
toString()
返回一个该对象的String描述。
wait()
暂停当前线程,并把线程放到对象的等候线程集中,直到当前线程被唤醒继续执行。
wait(timeout)
暂停当前线程,并把线程放到对象的等候线程集中,直到当前线程被唤醒或者经过了规定的超时时间而继续执行。
java.lang.Package
该类的对象包含了已封装的Java包所遵循的规范和实现的版本信息,这些信息主要来源于跟类文件一起部署的MANIFEST文件。类的ClassLoader负责获得这些信息。规范的版本号符合“\d+(\.\d+)*”的模式。
java.lang.Process
执行ProcessBuilder.start()和Runtime.exec()方法可以得到该类的子类的实例。这些实例对象可以被用于获取进程信息乃至控制进程。该类提供了从进程中获得输入,向进程中输出,等待进程完成,检查进程结束状态,以及杀死进程等方法。与进程的交互通过该进程的标准IO方法(stdin, stdout, stderr)来完成。
java.lang.ProcessBuilderclassname
创建一个操作系统进程,用以执行外部命令。并允许为命令的执行提供参数,以及设置系统环境变量。
java.lang.Runtime
每个Java应用都有且仅有一个该类的实例与之对应。通过该类的实例,Java应用可以与虚拟机运行环境交互。
java.lang.RuntimePermission
运行时权限。用以限定运行时是否被允许执行某些动作。
java.lang.SecurityManager
安全管理器。为应用提供验证在特定安全上下文中是否具有某种权限的服务。
java.lang.Short
将原始数据类型short对象化的类。该类的实例对象除了包含一个short值之外,还提供short与其他类型之间转化等处理short的方法。
java.lang.StackTraceElement
堆栈跟踪元素。一系列该类的实例描述了方法调用堆栈的信息。该类的出现使对方法调用堆栈提供个性化处理成为可能。
java.lang.StrictMath
精确数学运算类。该类提供了基本数学运算方法的精确实现。这些方法的实现算法来源于众所周知的网络库??"Freely Distributable Math Library"。
java.lang.String
字符串类。唯一的对象基本数据类型。无需多言。该类的format方法提供了基于正则表达式的强大格式转换功能。字符串一旦被创建将不能再被改变。
java.lang.StringBuffer
维护可变字符序列的字符串缓冲器。该类的处理方法线程安全。该类被用于处理比较不稳定的字符序列(经常需要变化的字符序列。对字符序列常见的变化包括在某个特定索引位置插入新的字符序列)。
java.lang.StringBuilder
提供兼容于java.lang.StringBuffer的功能。不同点在于该类不保证线程安全。
java.lang.System
提供访问系统元素的系统类。该类提供了对标准输入/输出/错误、系统环境变量、系统属性的访问方法,以及其他有用的工具方法。
java.lang.Thread
线程。一个程序可以有多个并发的执行线程。线程分为用户线程和后台线程。Java虚拟机在只有后台线程在运行时退出。
java.lang.ThreadGroup
一组线程的集合。线程组可以嵌套。
java.lang.ThreadLocal
线程局部变量。这些变量可以在不同的线程中独立初始化及赋值。线程局部变量通常是类中与线程状态相关联的私有静态属性。譬如:事务Id等。
java.lang.Throwable
可抛出对象接口。Java语言中所有的异常和错误都实现了该接口。只有实现了该接口的类才可以被Java虚拟机抛出,或者说才可以用于throw语句,或者做为catch语句的参数。
java.lang.Void
该类是一个不能实例化的占位符。该类表达了Java语言void关键字的类对象。
4.3. 枚举声明
java.lang.Thread.State
线程有以下几种状态:NEW(已创建但尚未开始执行)、RUNNABLE(正在Java虚拟机中执行)、BLOCKED(阻塞中:正等待获得监控锁)、WAITING(等待:无条件等候其他线程执行完毕,直到接收到唤醒通知)、TIMED_WAITING(限时等待:等候其他线程执行完毕,直到接收到唤醒通知或等待时间超过了时限)、TERMINATED(终止:线程已经退出)。
4.4. 异常
java.lang.ArithmeticException
算术条件异常。譬如:整数除零等。
java.lang.ArrayIndexOutOfBoundsException
数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。
java.lang.ArrayStoreException
数组存储异常。当向数组中存放非数组声明类型对象时抛出。
java.lang.ClassCastException
类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。
java.lang.ClassNotFoundException
找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。
java.lang.CloneNotSupportedException
不支持克隆异常。当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。
java.lang.EnumConstantNotPresentException
枚举常量不存在异常。当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象并不包含常量时,抛出该异常。
java.lang.Exception
根异常。用以描述应用程序希望捕获的情况。
java.lang.IllegalAccessException
违法的访问异常。当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常。
java.lang.IllegalMonitorStateException
违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。
java.lang.IllegalStateException
违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。
java.lang.IllegalThreadStateException
违法的线程状态异常。当县城尚未处于某个方法的合法调用状态,而调用了该方法时,抛出异常。
java.lang.IndexOutOfBoundsException
索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。
java.lang.InstantiationException
实例化异常。当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常。
java.lang.InterruptedException
被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。
java.lang.NegativeArraySizeException
数组大小为负值异常。当使用负数大小值创建数组时抛出该异常。
java.lang.NoSuchFieldException
属性不存在异常。当访问某个类的不存在的属性时抛出该异常。
java.lang.NoSuchMethodException
方法不存在异常。当访问某个类的不存在的方法时抛出该异常。
java.lang.NullPointerException
空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等。
java.lang.NumberFormatException
数字格式异常。当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。
java.lang.RuntimeException
运行时异常。是所有Java虚拟机正常操作期间可以被抛出的异常的父类。
java.lang.SecurityException
安全异常。由安全管理器抛出,用于指示违反安全情况的异常。
java.lang.StringIndexOutOfBoundsException
字符串索引越界异常。当使用索引值访问某个字符串中的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。
java.lang.TypeNotPresentException
类型不存在异常。当应用试图以某个类型名称的字符串表达方式访问该类型,但是根据给定的名称又找不到该类型是抛出该异常。该异常与ClassNotFoundException的区别在于该异常是unchecked(不被检查)异常,而ClassNotFoundException是checked(被检查)异常。
java.lang.UnsupportedOperationException
不支持的方法异常。指明请求的方法不被支持情况的异常。
4.5. 错误
java.lang.AbstractMethodError
抽象方法错误。当应用试图调用抽象方法时抛出。
java.lang.AssertionError
断言错。用来指示一个断言失败的情况。
java.lang.ClassCircularityError
类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常。
java.lang.ClassFormatError
类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。
java.lang.Error
错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。
java.lang.ExceptionInInitializerError
初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。
java.lang.IllegalAccessError
违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。
java.lang.IncompatibleClassChangeError
不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误。
java.lang.InstantiationError
实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常.
java.lang.InternalError
内部错误。用于指示Java虚拟机发生了内部错误。
java.lang.LinkageError
链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况。
java.lang.NoClassDefFoundError
未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。
java.lang.NoSuchFieldError
域不存在错误。当应用试图访问或者修改某类的某个域,而该类的定义中没有该域的定义时抛出该错误。
java.lang.NoSuchMethodError
方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。
java.lang.OutOfMemoryError
内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。
java.lang.StackOverflowError
堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。
java.lang.ThreadDeath
线程结束。当调用Thread类的stop方法时抛出该错误,用于指示线程结束。
java.lang.UnknownError
未知错误。用于指示Java虚拟机发生了未知严重错误的情况。
java.lang.UnsatisfiedLinkError
未满足的链接错误。当Java虚拟机未找到某个类的声明为native方法的本机语言定义时抛出。
java.lang.UnsupportedClassVersionError
不支持的类版本错误。当Java虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前Java虚拟机支持的时候,抛出该错误。
java.lang.VerifyError
验证错误。当验证器检测到某个类文件中存在内部不兼容或者安全问题时抛出该错误。
java.lang.VirtualMachineError
虚拟机错误。用于指示虚拟机被破坏或者继续执行操作所需的资源不足的情况。
4.6. 注解符号类型
java.lang.Deprecated
被废弃。用于指示出于安全或者有了更好的替代方案等原因而不鼓励再使用的程序元素。当使用或者在未废弃的代码中覆盖被声明为Deprecated的程序元素时,编译器会发出警告。
java.lang.Override
覆盖。用于指示某个类的方法被声明为要求覆盖其父类的同一方法的情况。如果一个方法被声明覆盖类型,而没有真正覆盖其父类的同一方法,那么编译器必须产生一个错误信息。
java.lang.SuppressWarnings
消除警告。用于指示在被注解的程序元素中消除某些特定的命名警告。该注解大多用于深深地被嵌套的元素上。