收藏 分享(赏)

java.lang研究精品资料.doc

上传人:风样花鼓 文档编号:21124402 上传时间:2023-07-07 格式:DOC 页数:58 大小:663.86KB
下载 相关 举报
java.lang研究精品资料.doc_第1页
第1页 / 共58页
java.lang研究精品资料.doc_第2页
第2页 / 共58页
java.lang研究精品资料.doc_第3页
第3页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第14章 java.lang研究317第14章 java.lang研究本章讨论那些由java.lang定义的类和接口。正如你所知道的那样,java.lang被自动导入所有的程序。它所包含的类和接口对所有实际的Java程序都是必要的。它是Java最广泛使用的包。java.lang包括了下面这些类:BooleanLongStrictMath (Java 2,1.3)ByteMathStringCharacterNumberStringBufferClassObjectSystemClassLoaderPackage (Java 2)ThreadCompilerProcessThreadGroupD

2、oubleRuntimeThreadLocal (Java 2)FloatRuntimePermission (Java 2)ThrowableInheritableThreadLocal (Java 2)SecurityManagerVoidIntegerShort另外还有两个由Character定义的类:Character.Subset和Character.UnicodeBlock,它们是在Java 2中新增加的。java.lang也定义了如下的接口: Cloneable Comparable Runnable其中Comparable接口是在Java 2中新增加的。java.lang中的几

3、个类包含了过时的方法,其中的大多数可以追溯到Java 1.0。在Java2中仍然提供了这些方法,用于支持逐渐减少的老程序,而这些方法在新程序中不被推荐使用。大多数的过时方法出现在Java 2之前,因此在这里不讨论这些方法。而在Java 2中出现的那些过时的方法将被提及。Java 2也在java.lang包中增加了几个新的类和方法,这些新类和方法被说明如下。14.1 简单类型包装器在本书的第1部分,我们提到因为性能的原因,Java使用简单的类型,例如整型(int)和字符(char)。这些数据类型不是对象层次结构的组成部分。它们通过值传递给方法而不能直接通过引用传递。而且,也没有办法使两种方法对整

4、型(int)引用同一实例(same instance)。有时需要对这些简单的类型建立对象表达式。例如在第15章中讨论的仅仅处理对象的枚举类;如果要将简单类型存储到这些类中的一个,需要在类中包装简单类型。为了满足这种需要,Java提供了与每一个简单类型相应的类。本质上,这些类在类中包装(wrap)简单类型。因此,它们通常被称作类型包装器(wrappers)。14.1.1 Number抽象类Number定义了一个由包装数字类型字节型(byte),短整型(short),整型(int),长整型(long),浮点型(float)和双精度型(double)的类实现的超类。Number有返回上面不同数字格式

5、的对象值的抽象方法。也就是,doubleValue()方法返回双精度(double)值,floatValue()方法返回浮点(float)值等。这些方法如下:byte byteValue()double doubleValue()float floatValue()int intValue()long longValue()short shortValue()这些方法的返回值可以被舍入。Number有6个具体的子类包含了6种数字类型的显式值:双精度型(Double),浮点型(Float),字节型(Byte),短整型(Short),整型(Integer)和长整型(Long)。14.1.2 Dou

6、ble和Float 双精度(Double)和浮点(Float)分别是对类型double和类型float的浮点值的包装器。浮点(Float)构造函数如下所示:Float(double num)Float(float num)Float(String str) 引发NumberFormatException异常正如你所看到的,浮点(Float)对象可以由类型float或类型double的值创建。它们也能由浮点数的字符串表达式创建。双精度(Double)构造函数如下:Double(double num)Double(String str) 引发NumberFormatException异常 双精度(

7、Double)对象可以被双精度(double)值或包含了浮点值的字符串创建。由浮点(Float)定义的方法在表14-1中列出。由双精度(Double)定义的方法在表14-2中列出。浮点(Float)和双精度(Double)都定义了下面的常数:MAX_VALUE最大正值MIN_VALUE最小正值NaN非数字POSITIVE_INFINITY正无穷NEGATIVE_INFINITY负无穷TYPE浮点(float)或双精度(double)的类(Class)对象 表14-1 由Float定义的方法方法描述byte byteValue()返回调用对象的值(字节型)int compareTo(Float

8、f)将调用对象的数值与f中的数值进行比较,如果两者相等,返回0。如果调用对象的值小于f的值,则返回负值。如果调用对象的值大于f的值,则返回正值(在Java 2中新增加的)int compareTo(object obj)当obj是类Float中的对象时,该方法与compareTo(Float)的功能相同。否则,引发一个ClassCastException异常(在Java 2中新增加的)double doubleValue()返回调用对象的值(双精度型)boolean equals(Object FloatObj)如果float调用对象与FloatObj相等,则返回true。否则返回falses

9、tatic int float ToIntBits(float num)返回与num相应的与IEEE兼容的单精度位模式Float floatValue()返回调用对象的值(浮点型)int hashCode()返回调用对象的散列值static float intBitsToFloat(int num)返回由num指定的,与IEEE兼容的单精度位模式的等价浮点(float)值int intValue()返回整型(int)形式的调用对象值boolean isInfinite()如果调用对象包含有无穷大值,则返回true。否则返回falsestatic boolean isInfinite(float

10、 num)如果num指定了一个无穷大值,则返回true。否则返回falseboolean isNaN()如果调用对象中包含了非数字值,则返回true。否则返回falsestatic boolean isNaN(float num)如果num指定了一个非数字值,则返回true。否则返回falselong longValue()返回调用对象的值(长整型)static float parseFloat(String str) throws NumberFormatException以10为基数,返回包含在由str指定的字符串中的数字的等价浮点值(在Java 2中新增加的)short shortVal

11、ue()返回调用对象值(短整型)String toString()返回调用对象的等价字符串形式static String to String(float num)返回由num指定的值的等价字符串static Float valueOf(String str) throws NumberForamtException返回包含了由str中的字符串指定的值的float对象表14-2 由Double定义的方法方法描述byte byteValue()返回调用对象的值(字节型)int compareTo(Double d)将调用对象的值与d的数值进行比较。如果这两个值相等,则返回0。如果调用对象的数值小于

12、d的数值,则返回负值。如果调用对象的数值大于d的数值,则返回正值(在Java 2中新增加的)Int compareTo(Object obj)如果obj属于类Double,其操作与compareTo(Double)相同。否则,引发一个ClassCastException异常(在Java 2中新增加的)static long doubleToLongBits(double num)返回与num相应的与IEEE兼容的双精度位模式double doubleValue()返回调用对象的值(双精度)boolean equals(Object DoubleObj)如果double调用对象与DoubleOb

13、j相等,则返回true。否则,返回falsefloat floatValue()返回调用对象的值(浮点型)int hashcode()返回调用对象的散列码int intValue()返回调用对象的值(整型)boolean isInfinite()如果调用对象包含了一个无穷大值,则返回true。否则,返回falsestatic boolean isInfinite(double num)如果num指定了一个无穷大值,则返回true。否则,返回falseboolean is NaN()如果调用对象包含了一个非数字值,则返回true。否则,返回falsestatic boolean isNaN(do

14、uble num)如果num指定了一个非数字值,则返回true。否则,返回falsestatic double longBitsToDouble(long num)返回由num指定的,与IEEE兼容的双精度位模式的双精度(double)等价值long longValue()返回调用对象的值(长整型)static double parseDouble(String str) throws NumberFormatException以10为基数,返回包含在由str指定的字符串中的数字的等价双精度(double)形式(在Java 2中新增加的)short shortValue()返回调用对象的值(短

15、整型)String toString()返回调用对象的等价字符串形式Static String toString(double num)返回由num指定的值的等价字符串形式Static Double valueOf(String str) throws NumberFormatException返回包含了由str中的字符串指定的值的double对象在下面的例子中创建两个double对象一个通过使用双精度(double)值实现,另一个通过传递一个可以被解析为双精度(double)的字符串来实现。class DoubleDemo public static void main(String arg

16、s) Double d1 = new Double(3.14159); Double d2 = new Double(314159E-5); System.out.println(d1 + = + d2 + - + d1.equals(d2); 正如从下面的输出中可以看到的那样,如同通过equals()方法返回true,两种构造函数创建相同的双精度(double)实例。3.14159 = 3.14159 true理解isInfinite()和isNaN()浮点(Float)和双精度(Double)提供了isInfinite()和isNaN()方法,这些方法会有助于操作两个特殊的双精度(doub

17、le)和浮点(float)值,这些方法检验两个由IEEE浮点规范定义的独特的值:无穷和NaN(非具体数字)。当被检验的值为无穷大或无穷小值时,isInfinite()方法返回true。当被检验值为非数字时,isNaN()方法返回true。在下面的例子中构造了两个Double对象;一个是无穷,另一个是非数字:/ Demonstrate isInfinite() and isNaN()class InfNaN public static void main(String args) Double d1 = new Double(1/0.); Double d2 = new Double(0/0.)

18、; System.out.println(d1 + : + d1.isInfinite() + , + d1.isNaN(); System.out.println(d2 + : + d2.isInfinite() + , + d2.isNaN(); 程序运行产生如下的输出:Infinity: true, falseNaN: false, true14.1.3 Byte, Short, Integer 和 LongByte,Short,Integer,和Long类分别是字节型(byte),短整型(short),整型(int)和长整型(long)整数类型的包装器。它们的构造函数如下:Byte(b

19、yte num)Byte(String str) 引发一个NumberFormatException异常 Short(short num)Short(String str) 引发一个NumberFormatException异常 Integer(int num)Integer(String str) 引发一个NumberFormatException异常 Long(long num)Long(String str) 引发一个NumberFormatException异常 正如你能看到的,这些对象可由数值或含有有效整数值的字符串创建。由这些类定义的方法列在表14-3到表14-6中。正如你能看到的

20、,它们定义方法以便从字符串解析整数和将字符串转换为整数。为方便起见,这些方法提供的变量可以用来指定radix,也称为基数。通常二进制(binary)的基数是2,八进制(octal)的基数是8,十进制(decimal)的基数是10,而十六进制(hexadecimal)的基数为16。表14-3 由Byte定义的方法方法描述byte byteValue()返回调用对象值(字节型)int compareTo(Byte b)将调用对象的数值与b的数值进行比较。如果这两个数值相等,则返回0。如果调用对象的数值小于b的数值,则返回负值。如果调用对象的数值大于b的数值,则返回正值(在Java 2中新增加的)i

21、nt compareTo(Object obj)如果obj属于类Byte,其操作与compareTo(Byte)相同。否则,引发一个ClassCastException异常(在Java 2中新增加的)static Byte decode(String str) throws NumberFormatException返回一个包含了由str中的字符串指定的值的Byte对象double doubleValue()返回调用对象值(双精度度型)boolean equals(Object ByteObj)如果Byte调用对象与ByteObj相等,则返回true。否则,返回falsefloat float

22、Value()返回调用对象值(浮点型)int hashCode()返回调用对象的散列码int intValue()返回调用对象值(整型)long longValue()返回调用对象值(长整型)static byte parseByte(String str) throws NumberFormatException以10为基数,返回包含在由str指定的字符串中的数字的等价字节(byte)形式static byte parseByte(String str,int radix) throws NumberFormatException以指定的基数(radix)为底,返回包含在由str指定的字符串

23、中的数字的等价字节short shortValue()返回调用对象值(短整型)String toString()返回一个包含了调用对象的等价十进制形式的字符串static String toString(byte num)返回一个包含了num的等价十进制形式的字符串static Byte valueOf(String str) throws NumberFormatException返回一个包含了由str中的字符串指定的值的Byte对象static Byte valueOf(String str,int radix) throws NumberFormatException以指定的基数(rad

24、ix)为底,返回一个包含了由str中的字符串指定的值的Byte对象表14-4 由Short定义的方法方法描述byte byteValue()返回调用对象值(字节型)int compareTo(Short s)将调用对象的数值和s的数值进行比较。如果这两个值相等,则返回0。如果调用对象的数值小于s的数值,则返回负值如果调用对象的数值大于s的数值,则返回正值(在Java 2中新增加的)int compareTo(Object obj)如果obj属于类Short,其操作与compareTo(Short)相同。否则,引发一个ClassCastException异常(在Java 2中新增加的)stati

25、c Short decode(String str)throws NumberFormatException返回一个包含了由str中的字符串指定值的Short对象double doubleValue()返回调用对象值(双精度型)boolean equals(Object ShortObj)如果整型(Interger)调用对象与ShortObj相等,则返回true。否则,返回falsefloat floatValue()返回调用对象值(浮点值)int hashCode()返回调用对象的散列码int intValue()返回调用对象值(整型)long longValue()返回调用对象值(长整型)

26、static short parseShort(String str) throws NumberFormatException以10为基数,返回包含在由str指定的字符串中的数字的等价短整型(Short)数static short parseShort(String str,int radix) throws NumberFormatException以指定的基数(radix)为底,返回包含在由str指定的字符串中的数字的等价短整型(Short)数short shortValue()返回调用对象值(短整型)String toString()返回一个包含了调用对象的等价十进制形式的字符串sta

27、tic String to String(short num)返回一个包含了num的等价十进制形式的字符串static Shortvalue Of(Stringstr)throws NumberFormatException以10为基数,返回一个包含了由str中的字符串指定的值的Short对象static Short valueOf(String str,int radix) throws NumberFormatException以指定的基数(radix)为底,返回一个包含了由str中的字符串指定的值的Short对象表14-5 由Integer定义的方法方法描述byte byteValue(

28、)返回调用对象值(字节型)int compareTo(Integer i)将调用对象的数值与i的数值进行比较。如果这两个值相等,则返回0。如果调用对象的数值小于i的数值,则返回负值。如果调用对象的数值大于i的数值,则返回正值(在Java 2中新增加的)续表方法描述int compareTo(Object obj)如果obj属于类Integer,其操作与compareTo(Integer)相同。否则,引发一个ClassCastException异常(在Java 2中新增加的)static Integer decode(String str) throws NumberFormatExceptio

29、n返回一个包含了由str中的字符串指定值的Integer对象double doubleValue()返回调用对象值(双精度型)boolean equals(Object IntegerObj)如果调用Interger对象与IntegerObj相等,则返回true。否则,返回falsefloat floatValue()static Integer getInteger(String propertyName)返回调用对象值(浮点型)返回与由propertyname指定的环境属性相关联的值,调用失败返回nullstatic Integer getInteger(String propertyNa

30、me,int default)返回与由propertyname指定的环境属性相关联的值,调用失败返回default值static Integer getInteger(String propertyName,Integer default)返回与由propertyname指定的环境属性相关联的值,调用失败返回default值int hashCode()返回调用对象的散列码int intValue()返回调用对象值(整型)long longValue()返回调用对象值(长整型)static int parseInt(String str) throws NumberFormatException

31、以10为基数,返回包含在由str指定的字符串中的数字的等价整数(integer)值static int parseInt(String str,int radix) throws NumberFormatException以指定的基数(radix)为底,返回包含在由str指定的字符串中的数字的等价整数值short shortValue()返回调用对象值(短整型)static String toBinaryString(int num)返回一个包含了num的等价二进制形式的字符串static String toHexString(int num)返回一个包含了num的等价十六进制形式的字符串st

32、atic String toOctalString(int num)返回一个包含了num的等价八进制形式的字符串String toString()返回一个包含了调用对象的等价十进制形式的字符串static String toString(int num)返回一个包含了num的等价十进制形式的字符串static String toString(int num,int radix)以指定的基数(radix)为底,返回一个包含了num的等价十进制形式的字符串static Integer valueOf(String str) throws NumberFormatException返回一个包含了由s

33、tr中的字符串指定的值的Integer对象static Integer valueOf(String str,int radix) throws NumberFormatException以指定的基数(radix)为底,返回一个包含了由str中的字符串指定的值的Integer对象表14-6 由Long定义的方法方法描述byte byteValue()返回调用对象值(字节型)int compareTo(Long l)将调用对象的数值和l的数值进行比较,如果这两个值相等,则返回0。如果调用对象的数值小于l的数值,则返回负值。如果调用对象的数值大于l的数值,则返回正值(在Java 2中新增加的)in

34、t compareTo(Object obj)如果obj属于类long,其操作与compareTo(Long)相同。否则,引发一个ClassCastException异常(在Java 2中新增加的)static Long decode(String str) throws NumberFormatException返回一个包含了由str中的字符串指定的值的Long对象double doubleValue()返回调用对象值(双精度型)boolean equals(Object LongObj)如果调用Long对象与LongObj相等,则返回true。否则,返回falsefloat floatVa

35、lue()返回调用对象值(浮点型)static Long getLong(String propertyname)返回与由propertyname指定的环境属性相关联的值,调用失败则返回nullstatic Long getLong(String propertyname,long default)返回与由propertyname指定的环境属性相关联的值,调用失败则返回default的值static long getLong(String propertyname,Long default)返回与由propertyname指定的环境属性相关联的值,调用失败则返回default的值int has

36、hcode()返回调用对象的散列码int intValue()返回调用对象值(整型)long longValue()返回调用对象值(长整型)static long parseLong(String str) throws NumberFormatException以10为基数,返回包含在由str指定的字符串中的数字的等价长整型(Long)数static long parseLong(String str,int radix) throws NumberFormatException以指定的基数(radix)为底,返回包含在由str指定的字符串中的数字的等价长整型(Long)数short sho

37、rtValue()返回调用对象值(短整型)static String toBinaryString(long num)返回一个包含了num的等价二进制形式的字符串static String toHexString(long num)返回一个包含了num的等价十六进制形式的字符串static String toOctalString(long num)返回一个包含了num的等价八进制形式的字符串String toString()返回一个包含了调用对象的等价十进制形式的字符串static String toString(long num)返回一个包含了num的等价十进制形式的字符串static S

38、tring toString(long num,int radix)以指定的基数(radix)为底,返回一个包含了num的等价十进制形式的字符串static Long valueOf(String str) throws NumberFormatException返回一个包含了由str中的字符串指定的值的Long对象续表方法描述static Long valueOf(String str,int radix) throws NumberFormatException以指定的基数(radix)为底,返回一个包含了由str中的字符串指定的值的Long对象定义下面的常数:MIN_VALUE最小值MA

39、X_VALUE最大值TYPE字节(Byte),短整型(short),整型(int)或长整型(long)的类(Class)对象数字和字符串的转换程序设计中一个最常见的任务是将一个数字的字符串表达式转换成内部的二进制格式。幸运的是Java提供了一个方便的方法去完成这项任务。Byte,Short,Integer和Long类分别提供了parseByte(),parseShort(),parseInt()和parseLong()方法。这些方法返回与调用它们的数值字符串相应的字节(byte),短整型(short),整型(int)和长整型(long)值(在Float和Double类中也有相似的方法)。下面的

40、程序说明了parseInt()方法。该程序完成对用户输入的一系列整数的求和。在程序中通过使用readLine()方法读取整数,使用parseInt()方法将这些字符串转换成与之相应的整型(int)值。/* This program sums a list of numbers entered by the user. It converts the string representation of each number into an int using parseInt().*/import java.io.*;class ParseDemo public static void main

41、(String args) throws IOException / create a BufferedReader using System.in BufferedReader br = new BufferedReader(new InputStreamReader(System.in); String str; int i; int sum=0; System.out.println(Enter numbers, 0 to quit.); do str = br.readLine(); try i = Integer.parseInt(str); catch(NumberFormatEx

42、ception e) System.out.println(Invalid format); i = 0; sum += i; System.out.println(Current sum is: + sum); while(i != 0); 为了将一个整数转换为一个十进制的字符串,可以使用在Byte,Short,Integer或Long类中定义的toString()方法。Integer和Long类还同时提供了toBinaryString(),toHexString()和toOctalString()方法,可以分别将一个值转换成二进制,十六进制和八进制字符串。下面的程序说明了向二进制,十六进制

43、和八进制的转换:/* Convert an integer into binary, hexadecimal, and octal.*/class StringConversions public static void main(String args) int num = 19648; System.out.println(num + in binary: + Integer.toBinaryString(num); System.out.println(num + in octal: + Integer.toOctalString(num); System.out.println(num

44、 + in hexadecimal: + Integer.toHexString(num); 程序的输出结果如下所示:19648 in binary: 10011001100000019648 in octal: 4630019648 in hexadecimal: 4cc014.1.4 Character字符(Character)是围绕字符型(char)的一个简单的包装器。字符(Character)的构造函数如下:Character(char ch)这里ch指定了被创建的字符(Character)对象所包装的字符。调用如下的charValue()方法可以获得包含在字符(Character)对

45、象中的字符型(char)值。char charValue()调用的结果返回字符。字符(Character)类定义了几个常数,包括下面这些:MAX_RADIX最大基数MIN_RADIX最小基数MAX_VALUE最大字符值MIN_VALUE最小字符值TYPE字符型(char)的类(Class)对象字符(Character)包括了几个静态方法,这些方法完成将字符分类并改变它们的大小写。这些方法在表14-7中列出。下面的例子说明了这些方法。/ Demonstrate several Is. methods.class IsDemo public static void main(String args) char a = a, b, 5, ?, A, ; for(int i=0; ia.length; i+) if

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 其他相关文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报