一、概述Java 是强类型语言所有变量在使用前必须声明类型。Java 的数据类型分为两大类基本数据类型 (Primitive Types)直接存储数据值占用内存小效率高。引用数据类型 (Reference Types)存储对象的内存地址引用如类、接口、数组等。注意null不是基本数据类型它是引用类型的默认值。二、8 种基本数据类型详解Java 共有8 种基本数据类型分为 4 类1. 整数类型 (Integer Types)用于存储没有小数部分的数值。类型关键字字节数取值范围默认值适用场景bytebyte1 字节-128 ~ 1270节省内存如图片像素、文件流shortshort2 字节-32,768 ~ 32,7670较少使用节省内存intint4 字节-2³¹ ~ 2³¹-10最常用默认整数类型longlong8 字节-2⁶³ ~ 2⁶³-10L大数值如时间戳、金额代码示例byteb100;shorts30000;inti100000;// 默认是 intlongl10000000000L;// 必须加 L 或 l 后缀否则报错// 错误示例long 类型赋值给 int 会报错需要强制转换// int wrong l;2. 浮点类型 (Floating-Point Types)用于存储带小数点的数值。类型关键字字节数精度默认值适用场景floatfloat4 字节单精度 (约 7 位)0.0f精度要求不高的科学计算doubledouble8 字节双精度 (约 15 位)0.0d最常用默认浮点类型代码示例floatf3.14f;// 必须加 f 或 F 后缀doubled3.1415926;// 默认是 double可加 d 或 D 后缀// 浮点数精度问题重要doublea0.1;doubleb0.2;System.out.println(ab);// 输出 0.30000000000000004// 解决涉及金额计算使用 BigDecimal 类3. 字符类型 (Character Type)用于存储单个字符。类型关键字字节数编码取值范围默认值charchar2 字节Unicode0 ~ 65,535 (0 ~ \uFFFF)‘\u0000’特点使用单引号 包裹。支持 Unicode 编码可以存储中文、表情等。本质是整数ASCII 码值可以进行算术运算。代码示例charc1A;charc2中;charc3\u0041;// Unicode 编码等同于 Acharc465;// 整数赋值等同于 ASystem.out.println(c11);// 输出 66 (char 参与运算时提升为 int)4. 布尔类型 (Boolean Type)用于存储逻辑值。类型关键字字节数取值默认值booleanboolean1 字节 (JVM 实现相关)true,falsefalse特点只能取true或false。不能与整数互转如1不等于true。用于条件判断、循环控制。代码示例booleanisPasstrue;booleanisFailfalse;if(isPass){System.out.println(通过);}三、类型转换 (Type Conversion)3.1 自动类型转换 (Implicit Casting)小范围 - 大范围无需手动干预不会丢失精度。转换规则由小到大byte - short - int - long - float - double char - int - long - float - double代码示例byteb10;intib;// 自动转换byte 提升为 intdoubledi;// 自动转换int 提升为 double3.2 强制类型转换 (Explicit Casting)大范围 - 小范围必须手动添加(类型)可能丢失精度或溢出。语法(目标类型) 变量名代码示例doubled3.99;inti(int)d;// 强制转换结果为 3 (小数部分被截断非四舍五入)longl10000000000L;intsmall(int)l;// 可能溢出结果不可预测注意char到int是自动转换。int到char需要强制转换如果 int 值在 char 范围内。float到int会丢失小数部分。3.3 字符串与基本类型的转换基本类型 - StringString s 123 ;或String.valueOf(123);String - 基本类型使用包装类的parseXxx方法。int i Integer.parseInt(123);double d Double.parseDouble(3.14);四、变量定义与命名规范4.1 定义语法数据类型 变量名初始值;4.2 命名规范 (驼峰命名法)变量名小驼峰 (lowerCamelCase)如studentName,maxCount。常量名全大写单词间用下划线如MAX_SIZE,PI。规则由字母、数字、下划线_、美元符号$组成。不能以数字开头。不能是 Java 关键字如int,class,public。见名知意。代码示例// 正确intstudentAge18;finaldoublePI3.14159;// 错误int1age18;// 不能以数字开头intclass10;// class 是关键字五、常见面试题与易错点1.byte类型的运算bytea1;byteb2;// byte c a b; // 编译错误// 原因byte byte 会自动提升为 int结果也是 int不能直接赋值给 bytebytec(byte)(ab);// 正确强制转换2.char类型的运算charc1a;charc2b;// char c3 c1 c2; // 编译错误// 原因char char 提升为 intintsumc1c2;// 正确3. 浮点数精度陷阱问题0.1 0.2 ! 0.3原因二进制无法精确表示某些十进制小数。解决涉及金额、金融计算必须使用BigDecimal。4.long类型赋值long l 10000000000;(错误默认是 int溢出)long l 10000000000L;(正确)5. 默认值局部变量没有默认值使用前必须赋值。成员变量类中定义的有默认值0, 0.0, false, null。六、总结速查表类型关键字大小范围默认值备注整数byte1B-128~1270节省空间short2B-32k~32k0少用int4B-21亿~21亿0默认整数long8B极大0L大数加 L浮点float4B单精度0.0f加 fdouble8B双精度0.0默认浮点字符char2BUnicode‘\u0000’单引号布尔boolean1Btrue/falsefalse逻辑判断七、实战练习publicclassDataTypeDemo{publicstaticvoidmain(String[]args){// 1. 定义变量intage25;doublesalary15000.50;chargradeA;booleanisEmployedtrue;// 2. 类型转换doubleprice99.9;intintPrice(int)price;// 99System.out.println(整数价格intPrice);// 3. 字符串转换StringstrNum123;intnumInteger.parseInt(strNum);System.out.println(数字 1 (num1));// 4. 浮点精度问题演示doubled10.1;doubled20.2;System.out.println(0.1 0.2 (d1d2));// 0.30000000000000004// 5. 常量定义finaldoublePI3.14159;// PI 3.14; // 错误常量不能修改}}掌握基本数据类型是 Java 编程的基石理解它们的内存占用、取值范围和转换规则能帮助你写出更高效、更安全的代码。