Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
处理数字时,大多数时候在代码中使用基本类型。例如:
int i = 500; float gpa = 3.65f; byte mask = 0xff;
但是,有时候需要使用对象代替基本类型,Java 平台为每个基本数据类型提供 wrapper (包装) 类。这些类将基本类型 "包装" 在对象中。通常,包装是由编译器完成的 - 如果你在期望对象时使用基本类型,编译器会 boxes (装箱) 基本类型到它的包装类中。类似地,如果在期望基本类型时使用数字对象,则编译器会 unboxes (拆箱) 对象。有关更多信息,请参阅 Autoboxing and Unboxing
所有数字包装类都是抽象类 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 。Java API 文档中描述了 Double 和 Float 对象的一些额外要求。 |
每个 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 对象,其中包含指定字符串表示的整数值,并使用 radix 值进行解析。例如,如果 s ="333" 且 radix = 8,则该方法返回等于八进制数 333 的十进制整数。 |