基本内置类型
- 以下按基本数据类型、基本构造类型两个部分对java的类型做一个简单描述。
- 穿插一些说明。
- 参考了《Java核心技术 · 卷1 · 基础知识》(第九版)及《疯狂Java讲义》(第二版)
基本数据类型
java的基本数据类型有 int, short, long, byte, float, double, char, boolean。
Integer, Short, Long, Byte, Float, Double, Character 为对应的类类型。
java里的数值类型都是有符号的。
整型:int, short, long, byte
| 类型 | 存储需求 | 取值范围 |
|---|---|---|
| int | 4 bytes | −231 ~ 231−1 |
| short | 2 bytes | −215 ~ 215−1 |
| long | 8 bytes | −263 ~ 263−1 |
| byte | 1 bytes | −27 ~ 27−1 |
对于整形常量,默认是 int 型,十进制数。
可通过加后缀 L 声明为长整型 long,如 2L。
可通过加前缀 0x 声明为十六进制数,如 0x2;
加前缀 0 声明为八进制数,如 02。
java7+ 加前缀 0b 声明为二进制数,如 0b01。
java7+ 常量还可以用下划线(_)进行分隔,如 1_000_000,编译器会自动去除下划线。
浮点型:float, double
| 类型 | 存储需求 | 取值范围 |
|---|---|---|
| float | 4 bytes | 大约 ±3.40282347E+38F |
| double | 8 bytes | 大约 ±1.79769313486231570E+308 |
对于浮点型常量,默认是 double 型。
可以使用十进制数表示或科学计数法表示,如 512.1 或 5.121E2。
可通过加后缀 F 声明为 float 型(单精度浮点型);
也可以加后缀 D 强调为 double 型(双精度浮点型)。
java的浮点数遵循 IEEE 754 标准:
| 类型 | 符号位 | 指数位 | 尾数位 |
|---|---|---|---|
| float | b31 | b23 ~ b30 | b0 ~ b22 |
| double | b63 | b52 ~ b62 | b0 ~ b51 |
说明:按照默认规则,由右往左位号依次为0, 1, 2, …,最右边称为 LSB(Least Significant Bit,最低有效位), 最左边称为 MSB(Most Significant Bit,最高有效位)。
java还有三个特殊的值,分别是 POSITIVE_INFINITY(正无穷大),NEGATIVE_INFINITY(负无穷大)和 NAN(不是一个数字),作为 Double 和 Float 的成员。
但一般不直接使用,而是采用如下方式
if(Double.isNaN(x))
java里的引用类型都不能直接使用==进行比较,这样做会被当作是比较引用的地址是否相同。
如果对精确度要求很高,则应当使用 BigDecimal 类。
字符型:char
java的 char 类型为 2字节的 utf-16 码。
这与其他的语言不同,一般的编程语言里 char 都是单字节的 ascll 码,因此如果使用 java 里的 char, 就需要特殊操作,不提倡直接操作,建议用 String 类间接操作。
即使使用 String 类,仍然操作起来要比其他语言麻烦并且容易出错。
在 java 里,一个 utf-16 方式表示的字符称为一个代码单元,
一个代码单元包括两个代码点。
Unicode代码单元可以用十六进制表示,如 \u005B 代表 ‘[‘。
一些转义字符:
| 转义序列 | 名称 | Unicode值 |
|---|---|---|
| \b | 退格 | \u0008 |
| \t | 制表 | \u0009 |
| \n | 换行 | \u000a |
| \r | 回车 | \u000d |
| \” | 双引号 | \u0022 |
| \’ | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
布尔类型:bollean
取值为 true 或 false,对应逻辑真和逻辑假。
基本构造类型
数组
与 C# 的语法基本相同,
int[] a;
输出数组的内容可以使用 for(int element : a) 或 Arrays.toString(a) 方式输出。
java中数组的长度可以为 0。
枚举类型与类类型
该部分的内容将独立出来。
本文深入解析Java中的基本数据类型,包括整型、浮点型、字符型和布尔类型,以及数组、枚举类型与类类型的基本概念和用法。
6199

被折叠的 条评论
为什么被折叠?



