Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。
在Java中,一共有8种数据类型(primitive type)其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型char以及一种用于表示真值的布尔类型boolean。
整型:
整型用于表示没有小数部分的数值,它允许是负数。Java提供了 4 种整型,具体内容如下表:
类 型 | 常用 | 存 储 需 求 | 取 值 范 围 |
int |
最常用 | 4 字节 | -2147483648 ~ 2147483647(-2^31-1 ~ 2^31 ) |
short | 很少用 | 2 字节 | -32768 ~ 32767 ( -2^15-1 ~ 2^15 ) |
long | 次常用 | 8 字节 | -9 223 372 036 854 774 808 ~ 9 223 372 036 854 775 807( -2^63-1 ~ 2^63 ) |
byte | 次少用 | 1 字节 | -128~127 (-2^7-1 ~ 2^7 ) |
在Java中,整型的范围与运行Java代码的机器无关。这就解决了软件从一个平台移植到另一个平台,或者在同一个平台中的不同操作系统之间进行移植给程序员带来的诸多问题。
注 意:
长整型后面有一个后缀 “L”( 如 8000000000L),十六进制数值有一个前缀 “0x”( 如 0xCAFE)。八进制有一个前缀 “0”(如 010 对应八进制中的 8 )。显然,八进制容易混淆,所以建议最好不要使用八进制常数。
浮点类型:
浮点类型用于表示有小数部分的数值。在Java中有两种浮点类型,具体内容如下表:
类 型 | 常 用 | 存 储 需 求 | 取 值 范 围 |
float | 少用 | 4 字节 | 1.4E-45 ~ 3.4028235E38 |
double | 常用 | 8 字节 | 4.9E-324 ~1.7976931348623157E308 |
double表示这种类型的数值精度是float类型的两倍,绝大部分应用程序都采用double类型。在很多情况下float的精度很难满足需求。
注 意:
float类型的数值后面有一个后缀F(例如: 3.402F)。没有后缀F的浮点数值(例如:3.402)默认为double类型。
所有的浮点数值计算都遵循IEEE 754规范。 正无穷大 负无穷大 NaN(非数值) 都会引起溢出和出错。
char 类型:
char类型用于表示单个字符。通常用于表示字符常量。例如:‘A’是编码为65所对应 的字符常量。与“A”不同,“A”是一个包含字符A的字符串。
注意在JAVA中,对char类型字符运行时,直接当做ASCII表对应的整数来对待。
例如:
char c = 'a'; //输出 a
char c = 'a'+'b'; //输出 Ã char类型相加,提升为int类型,输出对应的字符。
int c = 'a'+'b'; //输出 195 195没有超出int范围,直接输出195。
char m='a'+1; //输出 b 提升为int,计算结果98对应的字符是b。
注 意:
强烈建议不要再程序中使用char类型。
boolean类型:
boolean类型有两个值:false和true,用来判定逻辑条件。
注 意:
整型值和布尔值之间不能互相转换。(在C++中是可以用0值相当于布尔值false,非0值相当于true;在Java中则不行。)