3.3 整型
Java定义了4种整数类型:byte、short、int和long。所有这些类型都是有符号的、正的或负的整数。Java不支持无符号的、只是正值的整数。许多其他计算机语言同时支持有符号和无符号整数。然而,Java的设计者觉得无符号整数不是必需的。特别是,他们觉得“无符号”的概念通常用于指定“高阶位”(high-order bit)的行为,高阶位用于定义整型值的符号。在第4章将会看到,Java通过添加特殊的“无符号右移”运算符,以稍微不同的方式管理高阶位的含义。因此,Java消除了对无符号整数类型的需要。 不应将整数类型的宽度看成整数所消耗的存储量,而应当理解成定义这种类型的变量和表达式的行为。Java运行时环境可以自由使用它们希望的、任何大小的空间,只要类型的行为符合声明它们时的约定即可。这些整数类型的宽度和范围相差很大,如表3-1所示。
表3-1 整数类型的宽度和范围