一、接口
(1) java.lang.Appendable
实现该接口的类,其实例化的对象具有添加字符、添加指定的字符序列或者添加指定字符序列的子序列的功能。例如:某个类的实例打算接收取自 Formatter 的格式化输出,那么该类必须实现 Appendable 接口。
下面是实现该接口的类以及对其方法的介绍:
import java.io.IOException; public class AppendableTest implements Appendable { /** * 向此 Appendable 添加指定的字符序列 * @param csq (要添加的字符串序列。如果 csq 为 null,则向该 Appendable 添加四个字符 "null") * @return (此 Appendable 的引用 ) */ @Override public Appendable append(CharSequence csq) throws IOException { return null; } /** * 向此 Appendable 添加指定字符序列的子序列。 * @param csq - 子序列将被添加的字符序列。如果 csq 为 null,则添加四个字符 "null",就好像 csq 包含这些字符一样。 * @param start - 子序列中第一个字符的索引 * @param end - 紧随子序列中最后一个字符的字符的索引 * @return (此 Appendable 的引用 ) */ @Override public Appendable append(CharSequence csq, int start, int end) throws IOException { return null; } /** * 向此 Appendable 添加指定字符 * @param c - 要添加的字符 * @return (此 Appendable 的引用 ) */ @Override public Appendable append(char c) throws IOException { // TODO Auto-generated method stub return null; } }
(2) java.lang.CharSequence
CharSequence是一个可读的字符序列,此接口对许多不同种类的char序列提供统一的只读访问。该接口的四个方法都是非常重要而且经常使用的,分别是:
charAt(int index) : 返回指定索引的char值。注意:索引范围是从零到length( )-1。对于数组索引,序列的第一个char值是索引零,下一个是索引一,依此类推。
length( ) : 返回此字符序列的长度
subSequence(int start,int end) : 返回一个新的序列,该新的序列是原来序列的一个子序列。注意:子序列从指定序列的 char值开始,并在索引 end-1 的 char值结束。返回序列的长度(char中)是 end-start,因此,如果start==end,则返回一个空序列。
toString( ) : 返回一个包含此序列中字符的字符串,该字符串与此序列的顺序相同。字符串的长度就是此序列的长度。
(3) java.lang.Cloneable
如果一个类实现了Cloneable接口,就可以通过Object.clone()方法合法的对该类实例进行按字段复制,所以该接口可以称作克隆接口。注意:如果在没有实现Cloneable接口的实例上调用Object的clone方法,则会抛出CloneNotSupportedException异常。
(4)java.lang.Comparable
可以对实现该接口的类的对象进行整体排序,同时两个实例化的对象可以进行比较。
下面是比较的一个示例:
public class ComparableTest { public static void main(String[] args) { Short a=1; //Short是实现了Comparable接口的其中一个类 Short b=2; System.out.println(a.compareTo(b));//結果是:-1 System.out.println(b.compareTo(b));//結果是:0 System.out.println(b.compareTo(a));//結果是:1 } }
(5) java.lang.Iterable
迭代接口: 实现这个接口允许对象成为 "foreach" 语句的目标。
(6)java.lang.Readable
可读取接口:可以从实现该接口的类的实例对象中读取字符。
(7) java.lang.Runable
使用实现接口 Runable 的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的 run
方法。没有扩展Thread的类可以通过实现该接口,开发出多线程服务的能力。
(8) java.lang.Thread.UncaughtExceptionHandler
线程未捕获异常控制器接口。在线程执行过程中引发了异常而没有捕获时, 实现了该接口的类可以作为控制器处理该状况。当给定线程因给定的未捕获异常而终止时,调用该方法。Java 虚拟机将忽略该方法抛出的任何异常。
二、类
(1)java.lang.Boolean
将原始数据类型boolean对象化的类。Boolean 类将基本类型为 boolean
的值包装在一个对象中。一个 Boolean
类型的对象只包含一个类型为 boolean
的字段。此外,此类还为 boolean
和 String
的相互转换提供了许多方法,并提供了处理 boolean
时非常有用的其他一些常量和方法。
(2)java.lang.Byte
将原始数据类型byte对象化的类。Byte
类将基本类型 byte
的值包装在一个对象中。一个 Byte
类型的对象只包含一个类型为 byte
的字段。此外,该类还为 byte
和 String
的相互转换提供了几种方法,并提供了处理 byte
时非常有用的其他一些常量和方法。
(3)java.lang.Character
将原始数据类型char对象化的类。Character
类在对象中包装一个基本类型 char
的值。Character
类型的对象包含类型为 char
的单个字段。该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写。
(4)java.lang.Character.Subset
该类的实例对表达某个Unicode字符集的特定子集。
(5) java.lang.Character.UnicodeBlock
表示 Unicode 规范中字符块的一系列字符子集。字符块通常定义用于特定脚本或目的的字符。一个字符至多可以包含在一个 Unicode 块中。
(6) java.lang.Class
该类的实例对象表达Java应用中正在运行的类或者接口。该类没有公共的构造方法,所以不能由Java虚拟机自动实例化,而是由ClassLoader实例化。
Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。
Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。
虚拟机为每种类型管理一个独一无二的Class对象。也就是说,每个类(型)都有一个Class对象。运行程序时,Java虚拟机(JVM)首先检查是否 所要加载的类对应的Class对象是否已经加载。如果没有加载,JVM就会根据类名查找.class文件,并将其Class对象载入。
基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也都对应一个 Class 对象。
每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。
一般某个类的Class对象被载入内存,它就用来创建这个类的所有对象。
(7) java.lang.ClassLoader
ClassLoader 类是一个抽象类, 该类是Java类加载器,负责根据制定的二进制名称加载相应的类。在Java语言规范中规定,类、接口或原始数据类型有三种命名,他们分别是许可名 (fully qualified name)、规范名(canonical name)、二进制名(binary name)。不同的类加载器根据类的 二进制名从不同的源中读取二进制的类“*.class”信息,并生成Class对象。每个类中都有对其加载器的引用。
(8) java.lang.Compiler
该类提供Java到本机代码的支持,及相关服务。该类只是JIT编译器的一个占位符而已。当第一次启动 Java 虚拟机时,它将确定系统属性 java.compiler
是否存在。(系统属性可通过 System
类定义的 getProperty
方法来访问。)如果存在,它将被假定为一个库名(带有特定于平台的确切位置和类型);可以调用 System
类中的 loadLibrary
方法来加载此库。如果加载成功,则调用该库中名为 java_lang_Compiler_start()
的函数。如果JVM第一次启动时未成功加载JIT编译器,则本类不做任何工作。
(9)java.lang.Double
将原始数据类型double对象化的类。该类的实例对象除了包含一个double值之外,还提供double与其他类型之间转化等处理double的方法,例如:可以将 double
转换为 String
,将 String
转换为 double
。
(10)java.lang.Enum
Java语言中所有枚举类型的公共基类。
(11)java.lang.Float
将原始数据类型float对象化的类。该类的实例对象除了包含一个float值之外,还提供float与其他类型之间转化等处理float的方法。
(12)java.lang.InheritableThreadLocal
该类扩展了java.lang.ThreadLocal类。为子线程(Thread)提供创建时从其父线程获得可继承线程局部变量 (inheritable thread-local variables )的能力。子线程可以任意处理从父线程继承来的局部变量,而不影响父线程。使 用可继承线程局部变量可以提高线程局部变量的维护效率。
(13)java.lang.Integer
将原始数据类型int对象化的类。该类的实例对象除了包含一个int值之外,还提供int与其他类型之间转化等处理int的方法。
(14)java.lang.Long
将原始数据类型long对象化的类。该类的实例对象除了包含一个long值之外,还提供long与其他类型之间转化等处理long的方法。
(15)java.lang.Math
该类提供了基本的数学运算方法。譬如:乘方、开方、指数、角度运算等。为了提高性能,该类的方法大多损失了精确度。更精确的结果可以通过java.lang.StrictMath的相应方法得到。
(16)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等原始类型数值的方法。这些转换方法可能会对数值采取四舍五入或截断的策略,从而损失数值的正确性。
(17)java.lang.Object
该类的对象是Java平台中所有其他类对象扩展层次树的根。所有其他类都直接或者间接地扩展了该类。
(18)java.lang.Package
该类的对象包含了已封装的Java包所遵循的规范和实现的版本信息,这些信息主要来源于跟类文件一起部署的MANIFEST文件。类的ClassLoader负责获得这些信息。规范的版本号符合“\d+(\.\d+)*”的模式。
(19)java.lang.Process
执行ProcessBuilder.start()和Runtime.exec()方法可以得到该类的子类的实例。这些实例对象可以被用于获取进程信息乃至控制进程。该类提供了从进程中获得输入,向进程中输出,等待进程完成,检查进程结束状态,以及杀死进程等方法。与进程的交互通过该进程的标准IO方法 (stdin, stdout, stderr)来完成。
(20)java.lang.ProcessBuilder
创建一个操作系统进程,用以执行外部命令。并允许为命令的执行提供参数,以及设置系统环境变量。
(21)java.lang.Runtime
每个Java应用都有且仅有一个该类的实例与之对应。通过该类的实例,java应用可以与虚拟机运行环境交互。
/**java.lang.Process和java.lang.Runtime结合的一个demo*/ public class JavaVScmd { public static void main(String[] args) { Runtime runtime=Runtime.getRuntime(); try { @SuppressWarnings("unused") Process process=runtime.exec("cmd.exe /c start http://www.hao123.net/"); //方法exec的参数就是你要调用的具体系统命令。因为start本身不是一个可执行的exe文件, //因此需要在前面添加cmd /c来启动一个控制台应用程序。 } catch (IOException e) { e.printStackTrace(); } } }
(22)java.lang.RuntimePermission
运行时权限。用作限定运行时是否被允许执行某些动作。
(23)java.lang.SecurityManager
安全管理器,一个允许应用程序实现安全策略的类。为应用提供验证在特定安全上下文中是否具有某种权限的服务。它允许应用程序在执行一个可能不安全或敏感的操作前确定该操作是什么,以及是否是在允许执行该操作的安全上下文中执行它。应用程序可以允许或不允许该操作。
(24)java.lang.Short
将原始数据类型short对象化的类。该类的实例对象除了包含一个short值之外,还提供short与其他类型之间转化等处理short的方法。
(25)java.lang.StackTraceElement
堆栈跟踪元素。一系列该类的实例描述了方法调用堆栈的信息。该类的出现使对方法调用堆栈提供个性化处理成为可能。每个元素表示单独的一个堆栈帧。所有的堆栈帧(堆栈顶部的那个堆栈帧除外)都表示一个方法调用。堆栈顶部的帧表示生成堆栈跟踪的执行点。通常,这是创建对应于堆栈跟踪的 throwable 的点。
(26)java.lang.StrictMath
精确数学运算类。StrictMath
类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数,提供了基本数学运算方法的精确实现。
(27)java.lang.String
字符串类。唯一的对象基本数据类型。String
类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。同时该类的format方法提供了基于正则表达式的强大格式转换强大功能。注意:字符串一旦被创建将不能再被改变。Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder
(或 StringBuffer
)类及其 append
方法实现的。字符串转换是通过 toString
方法实现的,该方法由 Object
类定义,并可被 Java 中的所有类继承。
(28)java.lang.StringBuffer
线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。维护可变字符序列的字符串缓冲器。该类的处理方法线程安全。该类被用于处理比较不稳定的字符序列(经常需要变化的字符序列。对字符序列常见的变化包括在某个特定索引位置插入新的字符序列)。StringBuffer
上的主要操作是 append
和 insert
方法,可重载这些方法,以接受任意类型的数据。append
方法始终将这些字符添加到缓冲区的末端;而 insert
方法则在指定的点添加字符。
(29)java.lang.StringBuilder
一个可变的字符序列, 提供兼容于java.lang.StringBuffer的功能。不同点在于该类不保证线程安全。
(30)java.lang.System
提供访问系统元素的系统类。该类提供了对标准输入/输出/错误、系统环境变量、系统属性的访问方法,以及其他有用的工具方法。
(31)java.lang.Thread
线程。一个程序可以有多个并发的执行线程。线程分为用户线程和后台线程。Java虚拟机在只有后台线程在运行时退出。
(32)java.lang.ThreadGroup
一组线程的集合。线程组可以嵌套。线程组构成一棵树,在树中,除了初始线程组外,每个线程组都有一个父线程组。
(33)java.lang.ThreadLocal
线程局部变量。这些变量可以在不同的线程中独立初始化及赋值。线程局部变量通常是类中与线程状态相关联的私有静态属性。例如:事务Id等。
(34)java.lang.Throwable
Throwable 类是 Java 语言中所有错误或异常的超类, 可抛出对象接口。Java语言中所有的异常和错误都实现了该接口。只有实现了该接口的类才可以被Java虚拟机抛出,或者说才可以用于throw语句,或者做为catch语句的参数。
(35)java.lang.Void
该类是一个不能实例化的占位符。该类表达了Java语言void关键字的类对象。