IT Notes‎ > ‎Java‎ > ‎Java Language‎ > ‎

Java 原始数据类型的范围和缺省值

JVM 支持的原始数据类型有三种:数值型、boolean类型、返回地址类型(returnAddress)。在 Java 中表达某类型的数,值不可能是无限的,这里记录它们的二进制长度、数值范围和缺省值。類的非靜態域可以不賦初值,系統默認其為0。

 类型长度(byte)
最小值
最大值
缺省值
备注
 byte 1 -128 = -2^(8-1)
 127 = 2^(8-1)-1
 (byte)0 
 short 2 -32768 = -2^(16-1)-32767 = 2^(16-1)-1
 (short)0 
 int     4
 -2147483648 = -2^(32-1)
 2147483647 = 2^(32-1)-1
 0 
 long 8 -9223372036854775808 = -2^(64-1)
 9223372036854775807 = 2^(64-1)-1
 0L 
 char 2 0(\u0000) 65535(\uffff) \u0000 (null) 
 float 4 ~-3.402 823 47E + 38F
 ~3.402 823 47E + 38F 0.0f有效位数为6~7位
 double 8 ~-1.797 693 134 862 315 70E + 308
 ~1.797 693 134 862 315 70E + 308 0.0d 有效位数为15位
 boolean    false 

浮点数不适用于禁止出现舍入误差的金融计算中,此时需要使用 BigDecimal 类(摘自《Core Java e8》,3.3.2)。本站从前也记录了一个来自《Java 解惑》的例子:浮点数的问题

对 char 类型,有一个有趣的例子,代码如下:
    public static void main(String\u005b\u005d args) {
        System.out.println("\u005b \u005d");
    }
完整的代码参 Google code 上的备份

对整型(int, long)的使用,可能出现一些问题,参本站的:



Comments