1. 整数类型:精确的数值计算
byte (字节型)
-
内存:1字节 (8位)
-
范围:-128 ~ 127
-
场景:是最小的整数类型,适合用于节省内存,例如在处理文件或网络流时存储小范围整数数据
short (短整型)
-
内存:2字节 (16位)
-
范围:-32,768 ~ 32,767
-
场景:较少使用,通常用于在需要节省内存且数值范围在该区间的场景。
int (整型) - 最常用
-
内存:4字节 (32位)
-
范围:-2^31 ~ 2^31-1 (约±21亿)
-
细节:最常用的整数类型,可满足大多数日常编程中整数计算的需求。
long (长整型)
-
内存:8字节 (64位)
-
范围:-2^63 ~ 2^63-1
-
声明:用于表示非常大的整数,当
int
类型无法满足需求时使用,定义时数值后需加L
或l
。
long lightYear = 9460730472580800L; // 一光年的米数
2. 浮点类型:科学计算的利器
float (单精度浮点)
-
内存:4字节
-
范围:约±3.4e38 (7位有效数字)
-
声明:单精度浮点数,用于表示小数,精度相对较低,定义时数值后需加
F
或f
-
注意:金融计算禁用(精度问题)
float piApprox = 3.14159F; // 圆周率近似值
double (双精度浮点) - 推荐默认
-
内存:8字节
-
范围:约±1.7e308 (15位有效数字)
-
细节:Java中浮点字面量默认是double
double atomSize = 0.0000000001d; // 原子尺寸
浮点陷阱:
永远不要用==
直接比较浮点数!
正确做法:double a = 0.1 + 0.2; double b = 0.3; boolean isEqual = Math.abs(a - b) < 1e-10; // 允许微小误差
3. 字符类型:文本的基础单元
char (字符型)
-
内存:2字节 (Unicode编码)
-
范围:\u0000 ~ \uFFFF (0~65535)
-
本质:本质是无符号整数
char letter = 'A';
char chineseChar = '中'; // 支持Unicode
char newLine = '\n'; // 转义字符
注意:
char
≠String
!
String
是对象,而char
是基本类型。
4. 布尔类型:逻辑的开关
boolean (布尔型)
-
取值:仅
true
或false
-
内存:JVM未明确定义(通常按1字节处理)
-
核心作用:控制程序流程
boolean isRaining = true;
if (isRaining) {
System.out.println("带伞出门!");
}
重要规范:
Java中禁止用0
/1
代替false
/true
,与C语言不同。
关键特性总结表
类型 | 内存 | 默认值 | 典型场景 |
---|---|---|---|
byte | 1字节 | 0 | 二进制数据、紧凑数组 |
short | 2字节 | 0 | 兼容性场景、小范围整数 |
int | 4字节 | 0 | 通用整数计算(默认选择) |
long | 8字节 | 0L | 极大整数(时间戳、天文数字) |
float | 4字节 | 0.0f | 低精度科学计算 |
double | 8字节 | 0.0d | 高精度计算(默认浮点) |
char | 2字节 | '\u0000' | 单个字符处理 |
boolean | - | false | 逻辑判断 |