基本数据类型
基本类型 | 大小 | 最小值 | 最大值 | 默认值 | 封装类型 |
---|---|---|---|---|---|
char | 16-bit | Unicode 0 | U n i c o d e 2 16 − 1 Unicode2^{16}-1 Unicode216−1 | ‘\u0000’(null) | Character |
byte | 8 bits | -128 | +127 | (byte)0 | Byte |
short | 16 bits | − 2 15 -2^{15} −215 | U n i c o d e 2 15 − 1 Unicode2^{15}-1 Unicode215−1 | (short)0 | Short |
int | 32 bits | − 2 31 -2^{31} −231 | U n i c o d e 2 31 − 1 Unicode2^{31}-1 Unicode231−1 | 0 | Integer |
long | 64 bits | − 2 63 -2^{63} −263 | U n i c o d e 2 16 − 1 Unicode2^{16}-1 Unicode216−1 | 0L | Long |
float | 32 bits | IEEE754 | IEEE754 | 0.0f | Float |
double | 64 bits | IEEE754 | IEEE754 | 0.0d | Double |
boolean | — | — | — | false | Boolean |
void | — | — | — | — | Void |
如图:
高精度数字
Java提供了两个用于高精度计算的类: BigInteger和BigDecimal。虽然它们大体上属于“包装器类”的范畴,但二者都没有对应的基本类型。
不过,这两个类包含的方法、提供的操作与对基本类型所能执行的操作相似。也就是说,能作用于int或float的操作,也同样能作用于BigInteger或BigDecimal。只不过必须以方法调用方式取代运算符方式来实现。由于这样做复杂了许多,所以运算速度会比较慢。在这里,我们以速度换取了精度。
BigInteger支持任意精度的整数。也就是说,在运算中,可以准确的表示任何大小的整数值,而不会丢失任何信息
BigDecimal支持任何精度的定点数,例如,可以用它进行精确的货币计算。
1.本文来源《Java编程思想(第四版)》