文档

Java™教程
隐藏目录
数字类
导航:学习Java语言
课程:数字和字符串
部分:数字

数字类

在处理数字时,大部分时间您会在代码中使用原始类型。例如:

int i = 500;
float gpa = 3.65f;
byte mask = 0x7f;

然而,有时候需要使用对象来替代原始类型,而Java平台为每个原始数据类型提供了包装类。这些类将原始类型“包装”在对象中。通常,编译器会自动进行包装——如果您在期望对象的地方使用原始类型,编译器会自动将原始类型装箱为其包装类。同样地,如果您在期望原始类型的地方使用数字对象,编译器会自动拆箱对象。更多信息请参阅自动装箱和拆箱

所有数字包装类都是抽象类Number的子类:

Number的类层次结构。

注意: 这里没有讨论的Number的其他四个子类。 BigDecimalBigInteger用于高精度计算。 AtomicIntegerAtomicLong用于多线程应用程序。

有三个原因可以使用Number对象而不是原始类型:

  1. 作为一个期望对象的方法的参数(在操作数字集合时经常使用)。
  2. 使用类定义的常量,例如MIN_VALUEMAX_VALUE,提供数据类型的上限和下限。
  3. 使用类方法将值转换为其他原始类型,将值转换为字符串,以及在不同数制之间进行转换(十进制、八进制、十六进制、二进制)。

下表列出了Number类的所有子类实现的实例方法。

所有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
对于DoubleFloat对象,还有一些额外的要求,这些要求在Java API文档中有描述。

每个Number类都包含其他方法,用于将数字转换为字符串以及在不同的数制之间进行转换。下表列出了Integer类中的这些方法。其他Number子类的方法类似:

转换方法,Integer类
方法 描述
static Integer decode(String s) 将字符串解码为整数。可以接受十进制、八进制或十六进制数字的字符串表示作为输入。
static int parseInt(String s) 返回一个整数(仅限十进制)。
static int parseInt(String s, int radix) 返回一个整数,给定一个字符串表示的十进制、二进制、八进制或十六进制数(radix分别等于10、2、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对象,使用给定的基数进行解析。例如,如果s = "333",radix = 8,该方法将返回八进制数333的十进制整数等价物。

上一页: 数字
下一页: 格式化数字打印输出