Java教程是针对JDK 8编写的。本页面描述的示例和实践不利用后续版本引入的改进,并且可能使用不再可用的技术。
有关Java SE 9及其后续版本中更新的语言特性的摘要,请参阅Java语言变更。
有关所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息,请参阅JDK发行说明。
在处理数字时,大部分时间您会在代码中使用原始类型。例如:
int i = 500; float gpa = 3.65f; byte mask = 0x7f;
然而,有时候需要使用对象来替代原始类型,而Java平台为每个原始数据类型提供了包装类。这些类将原始类型“包装”在对象中。通常,编译器会自动进行包装——如果您在期望对象的地方使用原始类型,编译器会自动将原始类型装箱为其包装类。同样地,如果您在期望原始类型的地方使用数字对象,编译器会自动拆箱对象。更多信息请参阅自动装箱和拆箱
所有数字包装类都是抽象类Number的子类:
Number的其他四个子类。 BigDecimal和BigInteger用于高精度计算。 AtomicInteger和AtomicLong用于多线程应用程序。
有三个原因可以使用Number对象而不是原始类型:
MIN_VALUE和MAX_VALUE,提供数据类型的上限和下限。下表列出了Number类的所有子类实现的实例方法。
| 方法 | 描述 |
|---|---|
byte byteValue() |
将此Number对象的值转换为返回的原始数据类型。 |
int compareTo(Byte anotherByte) |
将此Number对象与参数进行比较。 |
boolean equals(Object obj) |
确定此数字对象是否等于参数。 如果参数不是 null且为相同类型和具有相同数值的对象,则方法返回true。对于 Double和Float对象,还有一些额外的要求,这些要求在Java API文档中有描述。 |
每个Number类都包含其他方法,用于将数字转换为字符串以及在不同的数制之间进行转换。下表列出了Integer类中的这些方法。其他Number子类的方法类似:
| 方法 | 描述 |
|---|---|
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的十进制整数等价物。 |