Java 是 一种强类型语言。这意味着必须为每一个变量声明一种类型: 在 Java 中, 一共有 8种基本类型( primitive type ), 其中有 4 种整型、2 种浮点类型、1 种用于表示 Unicode 编码的字符单元的字符类型 char 和 1 种用于表示真值的 boolean 类型。
整型
整型用于表示没有小数部分的数值, 它允许是负数。Java 提供了 4 种整型,具体内容如下表所示:
类型(存储需求) | 取值范围 |
---|---|
int (4字节) | -2147483648~2147483647 |
short(2字节) | -32768~32767 |
long(8字节) | -9223372036854775808~9223372036854775807 |
byte(1字节) | -128~127 |
在 Java 中, 整型的范围与运行 Java 代码的机器无关。长整型数值有一个后缀 L 或 l( 如 4000000000L。) 十六进制数值有一个前缀 0x 或 0X (如OxCAFE),八进制有一个前缀 0 , 例如, 010 对应八进制中的 8。
从 Java 7 开始, 加上前缀 0b 或 0B 就可以写二进制数。例如,0b001就是 9。另外,同样是从 Java 7 开始,还可以为数字字面值加下划线,如用 1_000_000(表示一百万。这些下划线只是为了让人更易读。Java 编译器会去除这些下划线。
浮点类型
浮点类型用于表示有小数部分的数值。在 Java 中有两种浮点类型,具体内容如下表所示:
类型(存储需求) | 取值范围 |
---|---|
float(4字节) | 大约±3.40282347E+38F(有效位数为6~7位) |
double(8字节) | 大约±1.79769313486231570E+308(有效位数位15位) |
double 表示这种类型的数值精度是 float 类型的两倍(有人称之为双精度数值)。绝大部分应用程序都采用 double 类型。float 类型的数值有一个后缀 F 或 f (例如,3.14F) 。没有后缀 F 的浮点数值(如 3.14 ) 默认为 double 类型。当然,也可以在浮点数值后面添加后缀 D 或 d (例如,3.14D)
char类型
char 类型原本用于表示单个字符。不过,现在情况已经有所变化。 如今,有些 Unicode字符可以用一个 char值描述,另外一些 Unicode 字符则需要两个 char 值。
char 类型的字面量值要用单引号括起来。例如:‘A’ 是编码值为 65 所对应的字符常量。它与 “A” 不同,“A” 是包含一个字符 A 的字符串, char 类型的值可以表示为十六进制值,其范围从 \u0000 到 \Uffff。除了转义序列 \u 之外, 还有一些用于表示特殊字符的转义序列, 请参看下表 :
转义序列 | 名称 | Unicode值 |
---|---|---|
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\" | 双引号 | \u0022 |
\’ | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
在 Java 中,char 类型描述了 UTF-16 编码中的一个代码单元。强烈建议不要在程序中使用 char 类型,除非确实需要处理 UTF-16 代码单元。最好将字符串作为抽象数据类型处理
boolean类型
boolean (布尔)类型有两个值:false 和 true, 用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。