Java 数据类型就是变量能够存储的数据种类,Java 是强类型编程语言,每一个变量在声明的时候都必须明确指定数据类型,编译器会根据这个类型校验数据是否合法,防止类型不匹配的错误。Java 数据类型一共分成两大类,基本数据类型和引用数据类型,基本数据类型一共八种,直接存储数值本身,引用数据类型存储对象内存地址,这是入门阶段最核心的知识点,也是后续学习数组类集合的基础。很多新手容易混淆八种基本类型,分不清整数浮点字符布尔的取值范围,还有自动类型转换强制类型转换规则,这些都是 Java 编译报错高频原因。理解 Java 数据类型的意义,就是知道不同类型占用内存大小,能存多大数字,运算的时候会不会溢出,什么时候需要类型转换,写代码的时候合理选择类型,避免出现精度丢失溢出这类 bug。
八大基本数据类型详解
整数类型
byte 占用 1 字节,取值范围是负 128 到正 127,适合存储很小的整数,节省内存。
short 占用 2 字节,取值范围负 32768 到 32767,日常开发使用频率不高。
int 占用 4 字节,是最常用整数类型,取值范围负 20 多亿到正 20 多亿,绝大多数业务整数都使用 int。
long 占用 8 字节,数值很大的时候使用,赋值的时候后面一般加上 L 标识,比如 long num = 100000L。
浮点类型
float 单精度浮点数,占用 4 字节,赋值后面需要加 F,精度相对低。
double 双精度浮点数,占用 8 字节,是默认浮点类型,日常小数计算优先使用 double,但是要注意浮点数本身存在精度丢失问题。
字符类型
char 占用 2 字节,存储单个字符,使用单引号包裹,本质底层存储的是字符对应的 Unicode 编码数字,可以当成整数参与运算。
布尔类型
boolean 只有两个取值 true 和 false,用来做逻辑判断,不能和整数互相转换,这一点和 C 语言不一样。
引用数据类型详解
引用数据类型本身不直接保存真实数据,保存的是对象在堆内存里面的地址,常见引用类型包含类,接口,数组,String 字符串就是最典型的引用数据类型。基本类型变量赋值是值拷贝,引用类型变量赋值是地址拷贝,两个变量指向同一个对象,修改其中一个对象内容,另外一个变量读取的值也会跟着变化,这个是面试高频考点。
数据类型对比表格
| 类型名称 | 分类 | 占用字节 | 默认值 | 核心特点 |
|---|---|---|---|---|
| byte | 基本整数 | 1 | 0 | 范围最小 |
| short | 基本整数 | 2 | 0 | 很少使用 |
| int | 基本整数 | 4 | 0 | 最常用整数 |
| long | 基本整数 | 8 | 0 | 大整数 |
| float | 基本浮点 | 4 | 0.0f | 单精度 |
| double | 基本浮点 | 8 | 0.0 | 默认小数类型 |
| char | 基本字符 | 2 | 空字符 | Unicode 字符 |
| boolean | 基本布尔 | 1 位 | false | 只有真假 |
| String | 引用类型 | 无固定 | null | 字符串类 |
学习掌握 Java 数据类型的推进步骤
第一步 先记住八种基本数据类型名称,分类,内存字节大小,不需要一开始死记全部取值范围,写代码过程反复熟悉。第二步 理解自动类型转换,小类型可以自动转为大类型,比如 int 自动转 long,int 自动转 double。第三步 理解强制类型转换,大类型转小类型必须手动写强转,比如 double 转 int,强转会丢失小数部分,还可能溢出。第四步 区分基本类型和引用类型赋值区别,写代码测试基本类型拷贝和引用类型地址拷贝的差异。第五步 了解包装类,基本数据类型对应的包装类比如 Integer Double Character,包装类属于引用类型,支持自动装箱拆箱,这是后续集合框架必须掌握的内容。
综合来看 Java 数据类型核心就是八种基本类型加上引用类型两大体系,基本类型存值本身,引用类型存对象地址。写业务代码的时候,普通整数优先 int,超大数值用 long,小数优先 double,逻辑判断使用 boolean,字符串使用 String 引用类型。学习的时候重点掌握类型转换,自动装箱拆箱,还有基本类型和引用类型内存上的本质差别,这部分是 Java 入门必考点。
【常见问题】
问题 1 Java 数据类型具体是啥 一共有几种基本类型
回答 1 Java 数据类型具体是啥,基本数据类型固定一共八种,分别是 byte short int long float double char boolean,除此之外还有类接口数组这类引用数据类型。
问题 2 Java 数据类型具体是啥 int 和 long 有什么区别
回答 1 Java 数据类型具体是啥,int 是 4 字节整数,long 是 8 字节整数,long 可以存储更大数值,给 long 变量赋值大数字的时候末尾要加上 L 标识,防止数值超出 int 范围。
问题 3 Java 数据类型具体是啥 String 属于基本数据类型吗
回答 3 Java 数据类型具体是啥,String 不属于基本数据类型,String 是类,属于引用数据类型,变量保存的是字符串对象内存地址,和八种基本类型存储方式不一样。
问题 4 Java 数据类型具体是啥 为什么 double 计算会精度丢失
回答 4 Java 数据类型具体是啥,double 属于二进制浮点数,部分十进制小数没办法精准转换成二进制,所以运算之后会出现精度丢失,高精度金融计算一般会使用 BigDecimal 类处理。
【免责申明】
本文内容仅作为 Java 数据类型基础知识讲解,不同 JDK 版本核心数据类型定义保持稳定,但是包装类相关细节会随版本更新,相关知识点讲解仅供学习参考,不代表所有特殊边界场景全部覆盖,学习请结合代码上机验证。


