本节首先讨论java.lang
包中的Number类,它的子类,以及使用这些类的实例化而不是原始数字类型的状况。html
本节还介绍了PrintStream和DecimalFormat类,它们提供了编写格式化数字输出的方法。java
最后,讨论了java.lang
中的Math类,它包含数学函数,以补充语言中内置的运算符,该类具备三角函数,指数函数等方法。segmentfault
使用数字时,大多数时候在代码中使用基元类型,例如:api
int i = 500; float gpa = 3.65f; byte mask = 0xff;
可是,有理由使用对象代替基元,Java平台为每一个基元数据类型提供包装类,这些类将基元“包装”在对象中。一般,包装由编译器完成 — 若是在须要对象的地方使用基元,编译器会在包装器类中为你封装基元,相似地,若是在指望基元时使用数字对象,则编译器会为你拆箱对象,有关更多信息,请参阅自动装箱和拆箱。多线程
全部数字包装类都是抽象类Number
的子类:oracle
注意:这里没有讨论其余四个Number
的子类,BigDecimal
和BigInteger
用于高精度计算,AtomicInteger
和AtomicLong
用于多线程应用程序。
有三个缘由可使用Number
对象而不是基元:dom
MIN_VALUE
和MAX_VALUE
),它们提供数据类型的上限和下限。下表列出了Number
类的全部子类实现的实例方法。函数
方法 | 描述 |
---|---|
byte byteValue() short shortValue() int intValue() long longValue() float floatValue() double doubleValue() |
将此Number 对象的值转换为返回的基本数据类型。 |
int compareTo(Byte anotherByte) int compareTo(Double anotherDouble) int compareTo(Float anotherFloat) int compareTo(Integer anotherInteger) int compareTo(Long anotherLong) int compareTo(Short anotherShort) |
将此Number 对象与参数进行比较。 |
boolean equals(Object obj) |
肯定此数字对象是否等于参数。 若是参数不为 null 而且是相同类型且具备相同数值的对象,则方法返回true 。Java API文档中描述了 Double 和Float 对象的一些额外要求。 |
每一个Number
类都包含其余方法,这些方法可用于数字与字符串之间的转换和用于数字系统之间的转换,下表列出了Integer
类中的这些方法,其余Number
子类的方法相似:spa
方法 | 描述 |
---|---|
static Integer decode(String s) |
将字符串解码为整数,能够接受十进制、八进制或十六进制数字的字符串表示做为输入。 |
static int parseInt(String s) |
返回一个整数(仅十进制) |
static int parseInt(String s, int radix) |
返回一个整数,给定十进制、二进制、八进制或十六进制(radix 分别等于十、二、8或16)数字的字符串表示做为输入。 |
String toString() |
返回表示此Integer 值的String 对象。 |
static String toString(int i) |
返回表示指定整数的String 对象。 |
static Integer valueOf(int i) |
返回包含指定基元值的Integer 对象。 |
static Integer valueOf(String s) |
返回一个包含指定字符串表示形式值的Integer 对象。 |
static Integer valueOf(String s, int radix) |
返回一个Integer 对象,该对象包含指定字符串表示形式的整数值,并使用radix 值进行解析。例如,若是 s = "333" 且radix = 8 ,则该方法返回等于八进制数333的十进制整数。 |
你可使用其中一个包装类 — Byte
、Double
、Float
、Integer
、Long
或Short
— 来在对象中包装许多基本类型,Java编译器会在必要时自动为你包装(装箱)基元,并在必要时再将它们拆箱。线程
Number
类包括常量和有用的类方法,MIN_VALUE
和MAX_VALUE
常量包含该类型对象可包含的最小值和最大值,byteValue
、shortValue
和相似方法将一种数字类型转换为另外一种数字类型,valueOf
方法将字符串转换为数字,toString
方法将数字转换为字符串。
要格式化包含输出数字的字符串,可使用PrintStream
类中的printf()
或format()
方法,或者,你可使用NumberFormat
类使用模式自定义数字格式。
Math
类包含用于执行数学函数的各类类方法,包括指数、对数和三角函数方法,Math
还包括基本算术函数,例如绝对值和舍入,以及用于生成随机数的方法random()
。