java的8种原始数据类型是byte、short、int、long、float、double、char、boolean,分别对应不同存储大小、取值范围与默认值,需按场景选型并注意类型安全、精度陷阱与初始化规则。

Java 的 8 种原始数据类型是语言的底层基石,直接决定变量如何存储、运算和默认初始化。掌握它们不是为了背表格,而是避开越界、精度丢失、装箱陷阱这些高频坑。
整数类型:按需选型,别全用 int
整数有 4 种:byte(1 字节)、short(2 字节)、int(4 字节)、long(8 字节)。它们都以补码形式存储,取值范围固定,与平台无关。
-
byte:-128 ~ 127,适合网络字节流、文件 IO 或密集数组(如图像像素),声明时不能超限,
byte b = 128;直接编译失败 - short:-32768 ~ 32767,少见但有用,比如某些协议定义的字段长度为 2 字节
-
int:最常用,日常计数、数组索引、循环变量基本都用它;默认值是
0 -
long:必须加
L或l后缀(推荐大写 L 避免与数字 1 混淆),如long ts = System.currentTimeMillis();;默认值是0L
浮点类型:慎用 ==,优先考虑精度需求
float(4 字节,单精度)和 double(8 字节,双精度)本质是二进制近似表示十进制小数,无法精确表达 0.1、0.2 这类数。
- float 默认值是
0.0f,声明需显式加f或F,如float pi = 3.14f; - double 是 Java 浮点数默认类型,声明可省略
d,double d = 3.14;等价于3.14d;默认值为0.0d - 比较浮点数请用
Math.abs(a - b) ,而不是 <code>a == b - 金融计算务必用
BigDecimal,不用 float/double
字符与布尔:语义清晰,别误当整数用
char 是无符号 2 字节 Unicode 类型,取值 0 ~ 65535,对应 '\u0000' 到 '\uffff';默认值是 '\u0000'(空字符,非空格)。
- char 可参与算术运算(因为本质是整数),
'a' + 1得到'b',但这是语法糖,不建议依赖 - boolean 只有
true和false两个值,不能转成 0/1,也不能参与数学运算;默认值是false - 不要用
int flag = 1;代替 boolean,语义不清且浪费空间
关键细节:默认值、字面量与类型安全
所有原始类型在类成员变量中都有明确默认值(局部变量则必须显式初始化),这是 JVM 规范强制保证的。
- 数值类型默认为 0 或 0.0(带后缀),char 默认
'\u0000',boolean 默认false - 字面量隐含类型:
123是 int,123L是 long,123.0是 double,123.0f是 float - 赋值或传参时若范围超限,编译器会报错;窄类型转宽类型自动完成(如 byte → int),宽转窄需强制转换(如 int → byte),但可能丢失精度或溢出
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











