没有合适的资源?快使用搜索试试~ 我知道了~
java_lang包详解.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 154 浏览量
2021-10-02
11:44:50
上传
评论
收藏 290KB PDF 举报
温馨提示
试读
38页
java_lang包详解.pdf
资源推荐
资源详情
资源评论
本章讨论那些由 java.lang定义的类和接口。正如你所知道的那样, java.lang被自动导入
所有的程序。 它所包含的类和接口对所有实际的 Java程序都是必要的。 它是 Java最广泛使用
的包。
java.lang包括了下面这些类:
Boolean Long StrictMath (Java 2,1.3)
Byte Math String
Character Number StringBuffer
Class Object System
ClassLoader Package (Java 2) Thread
Compiler Process >ThreadGroup
Double Runtime ThreadLocal (Java 2)
Float >RuntimePermission (Java 2) Throwable
>InheritableThreadLocal (Java 2) SecurityManager Void
>Integer >Short >
另外还有两个由 Character定义的类: Character.Subset和Character.UnicodeBlock ,它们是
在 Java 2中新增加的。
java.lang也定义了如下的接口:
· Cloneable
· Comparable
· Runnable
其中 Comparable接口是在 Java 2中新增加的。
java.lang中的几个类包含了过时的方法,其中的大多数可以追溯到 Java 1.0。在 Java2中
仍然提供了这些方法, 用于支持逐渐减少的老程序, 而这些方法在新程序中不被推荐使用。
大多数的过时方法出现在 Java 2之前,因此在这里不讨论这些方法。而在 Java 2中出现的那
些过时的方法将被提及。
Java 2也在 java.lang包中增加了几个新的类和方法,这些新类和方法被说明如下。
14.1 简单类型包装器
在本书的第 1部分,我们提到因为性能的原因, Java使用简单的类型,例如整型( int )
和字符( char)。这些数据类型不是对象层次结构的组成部分。它们通过值传递给方法而
不能直接通过引用传递。而且,也没有办法使两种方法对整型( int)引用同一实例( same
instance)。有时需要对这些简单的类型建立对象表达式。例如在第 15章中讨论的仅仅处理
对象的枚举类;如果要将简单类型存储到这些类中的一个,需要在类中包装简单类型。为
了满足这种需要, Java提供了与每一个简单类型相应的类。本质上,这些类在类中包装
262 第 2 部分 Java 库
( wrap)简单类型。因此,它们通常被称作类型包装器( wrappers)。
14.1.1 Number
抽象类 Number定义了一个由包装数字类型字节型 (byte),短整型(short),整型(int),
长整型( long),浮点型( float )和双精度型( double)的类实现的超类。 Number有返回上
面不同数字格式的对象值的抽象方法。也就是, 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 Double 和 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 异常
双精度( 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 定义的方法
第 14 章 java.lang 研究 263
方法 描述
byte byteValue () 返回调用对象的值(字节型)
int compareTo(Float 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。否则返回 false
static 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。否则返回 false
static boolean isInfinite (float num ) 如果 num指定了一个无穷大值,则返回 true。否则返回 false
boolean isNaN() 如果调用对象中包含了非数字值,则返回 true。否则返回 false
static boolean isNaN( float num ) 如果 num指定了一个非数字值,则返回 true。否则返回 false
long longValue()
返回调用对象的值(长整型)
static float parseFloat(String str)
throws NumberFormatException
以10为基数,返回包含在由 str指定的字符串中的数字的等价
浮点值(在 Java 2中新增加的)
short shortValue() 返回调用对象值(短整型)
String toString () 返回调用对象的等价字符串形式
static String to String (float num ) 返回由 num指定的值的等价字符串
static Float valueOf (String str )
throws NumberForamtException
返回包含了由 str中的字符串指定的值的 float 对象
264 第 2 部分 Java 库
表 14-2 由 Double 定义的方法
方法 描述
byte byteValue () 返回调用对象的值(字节型)
int compareTo(Double d) 将调用对象的值与 d的数值进行比较。 如果这两个值相等,
则返回 0。如果调用对象的数值小于 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调用对象与 DoubleObj 相等,则返回 true。否则,
返回 false
float floatValue () 返回调用对象的值(浮点型)
int hashcode() 返回调用对象的散列码
int intValue () 返回调用对象的值(整型)
boolean isInfinite () 如果调用对象包含了一个无穷大值,则返回 true。否则,
返回 false
static boolean isInfinite (double num) 如果 num指定了一个无穷大值,则返回 true。否则,返回
false
boolean is NaN() 如果调用对象包含了一个非数字值,则返回 true。否则,
返回 false
static boolean isNaN( double num) 如果 num指定了一个非数字值,则返回 true。否则,返回
false
static double longBitsToDouble (long num) 返回由 num指定的,与IEEE 兼容的双精度位模式的双精度
(double)等价值
long longValue () 返回调用对象的值(长整型)
static double parseDouble(String str)
throws NumberFormatException
以10为基数,返回包含在由 str指定的字符串中的数字的等
价双精度( double)形式(在 Java 2中新增加的)
short shortValue() 返回调用对象的值(短整型)
String toString () 返回调用对象的等价字符串形式
Static String toString (double num) 返回由 num指定的值的等价字符串形式
Static Double valueOf (String str )
throws NumberFormatException
返回包含了由 str中的字符串指定的值的 double对象
在下面的例子中创建两个 double对象 —— 一个通过使用双精度( double)值实现,另一
个通过传递一个可以被解析为双精度( double)的字符串来实现。
第 14 章 java.lang 研究 265
class DoubleDemo {
public static void main(String args[]) {
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( ) 方法,这些方法会有助
于操作两个特殊的双精度( double)和浮点( 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.);
System.out.println(d1 + ": " + d1.isInfinite() + ", " + d1.isNaN());
System.out.println(d2 + ": " + d2.isInfinite() + ", " + d2.isNaN());
}
}
程序运行产生如下的输出:
Infinity: true, false
NaN: false, true
14.1.3 Byte, Short, Integer 和 Long
Byte,Short,Integer,和 Long 类分别是字节型( byte),短整型( short),整型( int )
和长整型( long)整数类型的包装器。它们的构造函数如下:
Byte(byte num)
Byte(String str) 引发一个 NumberFormatException 异常
Short(short num)
Short(String str) 引发一个 NumberFormatException 异常
Integer(int num)
剩余37页未读,继续阅读
资源评论
资料大全
- 粉丝: 14
- 资源: 26万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功