如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第2部分Java库第14章java.lang研究第14章java.lang研究本章讨论那些由java.lang定义的类和接口。正如你所知道的那样,java.lang被自动导入所有的程序。它所包含的类和接口对所有实际的Java程序都是必要的。它是Java最广泛使用的包。java.lang包括了下面这些类:BooleanLongStrictMath(Java2,1.3)ByteMathStringCharacterNumberStringBufferClassObjectSystemClassLoaderPackage(Java2)ThreadCompilerProcess>ThreadGroupDoubleRuntimeThreadLocal(Java2)Float>RuntimePermission(Java2)Throwable>InheritableThreadLocal(Java2)SecurityManagerVoid>Integer>Short>另外还有两个由Character定义的类:Character.Subset和Character.UnicodeBlock,它们是在Java2中新增加的。java.lang也定义了如下的接口:·Cloneable·Comparable·Runnable其中Comparable接口是在Java2中新增加的。java.lang中的几个类包含了过时的方法,其中的大多数可以追溯到Java1.0。在Java2中仍然提供了这些方法,用于支持逐渐减少的老程序,而这些方法在新程序中不被推荐使用。大多数的过时方法出现在Java2之前,因此在这里不讨论这些方法。而在Java2中出现的那些过时的方法将被提及。Java2也在java.lang包中增加了几个新的类和方法,这些新类和方法被说明如下。14.1简单类型包装器在本书的第1部分,我们提到因为性能的原因,Java使用简单的类型,例如整型(int)和字符(char)。这些数据类型不是对象层次结构的组成部分。它们通过值传递给方法而不能直接通过引用传递。而且,也没有办法使两种方法对整型(int)引用同一实例(sameinstance)。有时需要对这些简单的类型建立对象表达式。例如在第15章中讨论的仅仅处理对象的枚举类;如果要将简单类型存储到这些类中的一个,需要在类中包装简单类型。为了满足这种需要,Java提供了与每一个简单类型相应的类。本质上,这些类在类中包装(wrap)简单类型。因此,它们通常被称作类型包装器(wrappers)。14.1.1Number抽象类Number定义了一个由包装数字类型字节型(byte),短整型(short),整型(int),长整型(long),浮点型(float)和双精度型(double)的类实现的超类。Number有返回上面不同数字格式的对象值的抽象方法。也就是,doubleValue()方法返回双精度(double)值,floatValue()方法返回浮点(float)值等。这些方法如下:bytebyteValue()doubledoubleValue()floatfloatValue()intintValue()longlongValue()shortshortValue()这些方法的返回值可以被舍入。Number有6个具体的子类包含了6种数字类型的显式值:双精度型(Double),浮点型(Float),字节型(Byte),短整型(Short),整型(Integer)和长整型(Long)。14.1.2Double和Float双精度(Double)和浮点(Float)分别是对类型double和类型float的浮点值的包装器。浮点(Float)构造函数如下所示:Float(doublenum)Float(floatnum)Float(Stringstr)引发NumberFormatException异常正如你所看到的,浮点(Float)对象可以由类型float或类型double的值创建。它们也能由浮点数的字符串表达式创建。双精度(Double)构造函数如下:Double(doublenum)Double(Stringstr)引发NumberFormatException异常双精度(Double)对象可以被双精度(double)值或包含了浮点值的字符串创建。由浮点(Float)定义的方法在表14-1中列出。由双精度(Double)定义的方法在表14-2中列出。浮点(Float)和双精度(Double)都定义了下面的常数:MAX_VALUE最大正值MIN_VALUE最小正值NaN非数字POSITIVE_INFINITY正无穷NEGATIVE_INFINITY负无