[One minute]-JDK Overview-java.lang包概述--异常

5 views
Skip to first unread message

James Chan

unread,
Dec 23, 2005, 1:30:02 AM12/23/05
to program...@googlegroups.com

JDK之走马观花

上一页

 

 


1.      4. java.lang包概述

目录

4.1. 接口

4.2.

4.3. 枚举声明

4.4. 异常

4.5. 错误

4.6. 注解符号

本章将介绍Java语言编程的基本类库——java.lang包。

2.      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

线程未捕获异常控制器接口。在线程执行过程中引发了异常而没有捕获时, 实现了该接口的类可以作为控制器处理该状况。

3.      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使用1621位二进制位表达,即从\u0000\u10FFFF\u0000\uFFFF表示基本的16位字符,\u10000\u10FFFF表示辅助字符(supplymentary characters)。 辅助字符由一个高位替代符(high-surrogate )和一个低位替代符(low-surrogate )共同组成。高位替代符使用一个\uD800\uDBFF之间的字符表示;低位替代符使用一个\uDC00\uDFFF之间的字符表示。高位替代符的码点(Unicode code point)值减去\uD800的码点值的差按位左移10位,加上低位替代符的码点值减去\uDC00的码点值的差就是辅助字符的码点值。 在将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)的一个占位符而已。如果JVMJava 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.BigDecimaljava.math.BigIntegerjava.lang.Bytejava.lang.Doublejava.lang.Floatjava.lang.Integerjava.lang.Longjava.lang.Short等类的父类。扩展该类的子类必须实现将自己所代表的数字转换为bytedoublefloatintlongshort等原始类型数值的方法。这些转换方法可能会对数值采取四舍五入或截断的策略,从而损失数值的正确性。

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.      4.3. 枚举声明

java.lang.Thread.State

线程有以下几种状态:NEW(已创建但尚未开始执行)、RUNNABLE(正在Java虚拟机中执行)、BLOCKED(阻塞中:正等待获得监控锁)、WAITING(等待:无条件等候其他线程执行完毕,直到接收到唤醒通知)、TIMED_WAITING(限时等待:等候其他线程执行完毕,直到接收到唤醒通知或等待时间超过了时限)、TERMINATED(终止:线程已经退出)。

5.      4.4. 异常

java.lang.ArithmeticException

算术条件异常。譬如:整数除零等。

java.lang.ArrayIndexOutOfBoundsException

数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。

java.lang.ArrayStoreException

数组存储异常。当向数组中存放非数组声明类型对象时抛出。

java.lang.ClassCastException

类造型异常。假设有类ABA不是B的父类或子类),OA的实例,那么当强制将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

被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Threadinterrupt方法终止该线程时抛出该异常。

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(不被检查)异常,而ClassNotFoundExceptionchecked(被检查)异常

java.lang.UnsupportedOperationException

不支持的方法异常。指明请求的方法不被支持情况的异常。


上一页

起始页

 

java.*

上一级

 

 

肖志刚

unread,
Dec 26, 2005, 9:03:22 PM12/26/05
to program...@googlegroups.com
感谢,已经收藏!
Reply all
Reply to author
Forward
0 new messages