Java 数据类型完整专业讲解

Java 数据类型分为两大类:基本数据类型(原生类型 primitive)引用数据类型(reference)
Java 是强类型语言,所有变量声明必须指定类型,类型一旦确定不可随意转换。

一、基本数据类型(8种,存值在栈内存)

共四类:整数、浮点、字符、布尔,无对象、无方法,占用固定字节。

1. 整数类型(4种,有符号)

类型字节取值范围说明
byte1字节(-128~127)小范围数值、文件字节读取
short2字节(-32768~32767)较少使用
int4字节-2³¹ ~ 2³¹-1默认整数类型,最常用
long8字节-2⁶³ ~ 2⁶³-1大数,字面量后缀加L/l
inta=100;longb=9999999999L;

2. 浮点类型(2种,小数)

类型字节精度说明
float4字节6~7位小数后缀加F/f
double8字节15~16位小数默认浮点类型
floatf=3.14F;doubled=2.718;

注意:浮点存在精度丢失,金融计算用BigDecimal

3. 字符型 char

  • 2字节,存储 Unicode 字符,范围\u0000 ~ \uFFFF
  • 单引号包裹单个字符,可存汉字、转义字符
charc1='A';charc2='中';charc3='\n';//换行转义符

4. 布尔型 boolean

  • 仅2个值:true / false
  • 内存无固定标准,不能和数字互相转换
booleanflag=true;

二、引用数据类型(存地址,栈存引用,堆存实际对象)

  1. 类 Class:自定义类、String、包装类等
  2. 接口 Interface
  3. 数组 Array
  4. 枚举 Enum
  5. 记录 Record(Java16+)
    特点:
  • 变量存储对象内存地址,不是真实数值;
  • 默认初始值null
  • 拥有方法、属性,可调用;
  • 使用new在堆中创建实例。
Stringstr=newString("java");int[]arr=newint[5];

三、包装类(基本类型 ↔ 对象桥梁)

8种基本类型对应8个包装类,位于java.lang,支持自动装箱/拆箱:
byte→Byte、short→Short、int→Integer、long→Long
float→Float、double→Double、char→Character、boolean→Boolean

//装箱:基本→对象Integernum=10;//拆箱:对象→基本intn=num;

四、类型转换规则

1. 自动转换(隐式,小→大)

byte → short → int → long → float → double
char 可直接转 int。

2. 强制转换(显式,大→小,可能丢失精度)

doublex=3.99;inty=(int)x;// y=3,小数截断

五、核心区别:基本类型 vs 引用类型

  1. 存储位置:基本在栈;引用栈存地址,对象在堆
  2. 默认值:基本有默认0/false;引用默认null
  3. 内存开销:基本固定字节;引用伴随对象开销
  4. 比较判断:基本用==比数值;引用==比地址,equals()比内容
  5. 传参机制:均为值传递;基本传数值副本,引用传地址副本

六、面试核心要点

  1. 8种基本类型熟记字节与范围;
  2. String 是引用类型,不是基本类型;
  3. boolean 不能和数字转换;
  4. 浮点不适合高精度财务运算;
  5. 自动装箱缓存池:Integer(-128~127)复用对象;
  6. 局部基本变量无默认值,必须手动赋值才能使用。