数值类
在处理数字时,大多数时候在代码中使用基本类型。例如:
int i = 500;
float gpa = 3.65f;
byte mask = 0xff;
复制代码
但是,使用对象来代替基本类型是有原因的,而且Java平台为每种基本数据类型提供了包装类。这些类将基本类型“包装”在对象中。通常,包装是由编译器完成的——如果您在需要对象的地方使用基本类型的话,编译器将基本类型包装在其包装类中。相似的,如果在需要基本类型时使用包装对象,编译器将为您解析该对象。 更多信息见Autoboxing and Unboxing
所有的数值包装器类都是抽象类Number的子类:
Number的另外四个子类不在这里讨论。BigDecimal和BigInteger用于高精度计算。AtomicInteger和AtomicLong用于多线程应用程序
这里列出你可能使用包装类型而不是基本类型的三个理由:
- 方法的参数是对象(常用于集合)
- 要使用类定义的常量,如MIN_VALUE和MAX_VALUE,这些常量提供数据类型的上界和下界
- 使用类提供的方法将值转换为不同的基本数据类型,或在字符串与数值之间转换,或转换为不同的数字系统(二进制、八进制、十进制、十六进制等)
下表列出Number类的所有子类实现的实例方法。
每个Number类都包含其他方法,这些方法对于数字与字符串格式之间的互转以及在不同数字系统之间转换非常有用。下表列出了Integer类中的这些方法。其他Number子类的方法类似。