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的十进制整数等价物。 |