java有8种基本数据类型:4种整数型(byte、short、int、long)、2种浮点型(float、double)、1种字符型(char)和1种布尔型(boolean),它们与引用类型在存储方式、内存分配及转换规则上存在本质区别。

Java 是强类型语言,每个变量都必须明确声明类型。数据类型决定变量能存什么、占多少内存、支持哪些运算。掌握这 8 种基本类型,是写稳定、高效 Java 代码的第一步。
整数类型:按范围和内存选对类型
整数类型有 4 种,区别在字节大小和取值范围,不是越大越好,而是按需选用:
-
byte(1 字节):范围 -128 ~ 127,适合文件读写、网络传输、大数组优化;比如
InputStream.read()返回的就是 byte - short(2 字节):范围 -32768 ~ 32767,日常开发极少用,仅在嵌入式或特定二进制协议中出现
- int(4 字节):范围 -2147483648 ~ 2147483647,最常用,默认整数类型,计数、索引、普通数值首选
-
long(8 字节):范围极大(-2⁶³ ~ 2⁶³−1),处理时间戳、用户ID、大额数量时必须用;赋值要加
L后缀,如long id = 1234567890123L;
浮点类型:精度与场景必须匹配
float 和 double 都存小数,但精度和默认行为差异明显:
-
float(4 字节):单精度,约 6~7 位有效数字;声明时必须加
F或f,如float pi = 3.14F;;内存敏感场景可用,但一般不推荐 - double(8 字节):双精度,约 15~16 位有效数字;Java 中小数默认就是 double 类型,无需后缀;科学计算、常规小数运算首选
- ⚠️ 注意:浮点数无法精确表示很多十进制小数(如 0.1),金融计算等要求精确的场景应使用
BigDecimal,而非 float/double
字符与布尔类型:看似简单,细节关键
char 和 boolean 虽然只各有一种,但用法有固定规范:
-
char(2 字节):表示单个 Unicode 字符,用单引号包裹,如
char c = 'A';或char emoji = '\u1F600';;默认值是'\u0000'(空字符),不是空格也不是 null -
boolean(逻辑型):只有
true和false两个值,不能用 0/1 替代;默认值为false;它不对应具体字节数(JVM 实现通常用 1 字节或 4 字节对齐),但语义上严格用于条件判断
基本类型 vs 引用类型:本质区别要拎清
基本类型和引用类型的根本差异在于存储方式和内存行为:
- 基本类型(如 int、char)直接存数值本身,在栈中分配,速度快、开销小
- 引用类型(如 String、数组、自定义类)存的是对象在堆内存中的地址,变量本身在栈中,内容在堆中
- ⚠️ String 不是基本类型!它是引用类型,虽然语法上常被当作“基础”使用,但底层是对象,有方法、可变性(不可变)、null 值等特性
- 类型转换时,基本类型间可自动提升(如 byte → int),但基本类型与引用类型之间不能直接互转(String 和 int 互转需调用
Integer.parseInt()或String.valueOf())
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











