2.Java入门必看!数据类型和变量核心知识点全梳理(附代码示例)
目录一、字面常量程序里的“固定值”字面常量的分类结合代码示例二、数据类型Java里的“数据身份证”1. 基本数据类型4大类8种2. 引用数据类型什么是字节三、变量会“变”的数据容器1. 变量概念2. 语法格式3. 代码示例定义使用变量4. 注意事项划重点四、各类型变量详解附注意事项1. 长整型变量long2. 短整型变量short3. 字节型变量byte4. 浮点型变量重点1双精度浮点型double2单精度浮点型float5. 字符型变量char6. 布尔型变量boolean五、类型转换小类型→大类型大类型→小类型1. 自动类型转换隐式转换2. 强制类型转换显式转换3. 类型提升混合运算时1int和 long之间int会被提升为 long2byte和 byte的运算六、字符串类型String不是基本类型1. 字符串拼接2. 字符串与整型转换1int转 String2String转 int总结一张图理清数据类型和变量背下来作为刚入门Java的小白最近在学习数据类型和变量这块整理了这篇笔记把图片里的重点都汇总了希望能帮到同样在打基础的你一、字面常量程序里的“固定值”上节课的Hello World程序中System.out.println(Hello World);输出的Hello World就是字面常量。常量就是程序运行期间固定不变的数据比如一周7天、一年12个月。字面常量的分类结合代码示例public class Demo { public static void main(String[] args){ System.out.println(hello world!); // 字符串常量 System.out.println(100); // 整型常量 System.out.println(3.14); // 浮点数常量 System.out.println(A); // 字符常量 System.out.println(true); // 布尔常量 System.out.println(false); // 布尔常量 } }字符串常量由括起来比如12345、hello、你好。整型常量直接写的数字无小数点比如100、1000。浮点数常量直接写的小数比如3.14、0.49。字符常量单引号括起来的单个字符比如A、1。布尔常量只有true和false。空常量null后面讲。⚠️ 注意字符串、整型、浮点型、字符型、布尔型在Java中都称为数据类型。二、数据类型Java里的“数据身份证”Java中数据类型分为两类基本数据类型和引用数据类型。我这里给大家一个手写的思维导图牢牢记在脑子中噢1. 基本数据类型4大类8种⚠️ 注意不论16位还是32位系统int占4字节long占8字节。整型和浮点型都是带符号的。整型默认是int浮点型默认是double。字符串属于引用类型后面介绍。2. 引用数据类型包括String字符串类型、类、接口、枚举、抽象类……什么是字节字节是计算机中表示空间大小的基本单位。计算机使用二进制表示数据。我们认为 8 个二进制位(bit) 为一个字节(Byte)。我们平时的计算机为 8GB 内存意思是 8G 个字节。其中 1KB 1024 Byte1MB 1024 KB1GB 1024 MB。所以 8GB 相当于 80 多亿个字节。三、变量会“变”的数据容器1. 变量概念程序中除了固定常量外经常改变的内容称为变量。比如人的年龄、身高、成绩分数、数学函数的计算结果等。数据类型用来定义不同类型的变量。2. 语法格式数据类型 变量名 初始值;3. 代码示例定义使用变量int a 10; // 定义整型变量a初始值10 double d 3.14; // 定义浮点型变量d初始值3.14 char c A; // 定义字符型变量c初始值A boolean b true;// 定义布尔型变量b初始值true System.out.println(a); System.out.println(d); System.out.println(c); System.out.println(b); a 100; // 变量a的值可以修改 System.out.println(a); // 一行定义多个同类型变量 int a1 10, a2 20, a3 30; System.out.println(a1); System.out.println(a2); System.out.println(a3);4. 注意事项划重点int不论何种系统都是4个字节。推荐定义时赋初始值若没合适初始值可设为0。赋值不能超过变量类型范围否则溢出。变量使用之前必须初始化否则编译报错。int的包装类型为Integer。⚠️ 强提醒在Java中变量定义后使用前必须已经初始化四、各类型变量详解附注意事项1. 长整型变量longint a 10; long b 10L; // 建议加L或l否则默认是int long c 100; // 也可以但超过int范围会报错 long d 101l; // 一般加L小写l易和1混淆⚠️ 注意事项长整型初始值后加L或l推荐加L。长整型任何系统下都占8字节。范围-2^63 ~ (2^63)-1。long的包装类型为Long。2. 短整型变量shortpublic static void main(String[] args) { short a 10; System.out.println(a); System.out.println(Short.MIN_VALUE); System.out.println(Short.MAX_VALUE); }⚠️ 注意事项short任何系统下都占2字节。范围-32768 ~ 32767。使用时注意不要超过范围一般很少用。包装类型为Short。3. 字节型变量bytebyte b 10; System.out.println(b); System.out.println(Byte.MIN_VALUE); System.out.println(Byte.MAX_VALUE);⚠️ 注意事项byte任何系统下都占1字节。范围-128 ~ 127。包装类型为Byte。 思考byte、short、int、long都能定义整型变量为什么分4种答案为了节省内存byte存小整数long存大整数按需选择4. 浮点型变量重点1双精度浮点型doubledouble d 3.14; System.out.println(d);⚠️ 神奇代码一int a 1; int b 2; System.out.println(a / b); // 输出0int相除取整⚠️ 神奇代码二double num 1.1; System.out.println(num * num); // 输出1.2100000000000002浮点数近似2单精度浮点型floatfloat num 1.8f; // 必须加f或F否则默认是double System.out.println(num);⚠️ 注意事项double任何系统下都占8字节。浮点数与整数存储方式不同不能单纯用形式计算如int/int是整数除法。double遵守IEEE 754标准是近似值不是精确值。float占4字节也遵守IEEE 754工程中优先用doublefloat不推荐。float的包装类型为Float。5. 字符型变量charchar c1 A; // 大写字母 char c2 1; // 数字字符 char c3 中; // 汉字 System.out.println(c1); System.out.println(c2); System.out.println(c3); // 注意char只能用单引号且只能放单个字符 char c4 ab; // 报错⚠️ 注意事项Java中用单引号 单个字符表示字符面值。计算机中字符本质是二进制Java用Unicode表示种类更多包括中文。char的包装类型为Character。6. 布尔型变量booleanboolean b true; System.out.println(b); b false; System.out.println(b);⚠️ 注意事项只有true和false两个值。Java的boolean和int不能相互转换不存在1true、0false的用法。JVM没有明确规定boolean占几个字节通常用1字节Oracle规范。包装类型为Boolean。五、类型转换小类型→大类型大类型→小类型Java是强类型语言不同类型变量赋值时会有严格的校验。1. 自动类型转换隐式转换特点数据范围小的会自动转换为范围大的编译时自动处理。System.out.println((int)3.14); // 强制转为int结果是3 System.out.println(3.14); // 默认是double int a 10; long b 100L; b a; // int→long自动转换 byte b1 10; byte b2 20; byte b3 (byte)(b1 b2); // 正确写法先提升为int再强转⚠️ 结论byte和byte运算会被提升为int再计算因为CPU按4字节处理byte/short先升为int。2. 强制类型转换显式转换特点数据范围大的转范围小的需要手动加(类型)可能精度丢失。int a 1024; byte b (byte)a; // 强转可能溢出1024超出byte范围 int a 10; long b 100L; a (int)b; // long→int强转 float f 3.14f; double d 5.12; d f; // float→double自动转换小→大 f (float)d; // double→float强制转换大→小 byte b1 10; // 10默认是int但没超过byte范围自动转换 byte b2 (byte)257; // 257是int强转后溢出257-2561⚠️ 注意事项小范围类型赋值给大范围自动转换。大范围转小范围必须强转可能精度丢失。字面量赋值时Java会自动检查范围。强转不一定成功不相关的类型如int转boolean不能互转。3. 类型提升混合运算时不同类型数据混合运算时范围小的会提升到范围大的。1int和long之间int会被提升为longint a 10; long b 20; int c a b; // 报错ab的结果是long不能赋给int long d a b; // 正确a提升为long结果是long2byte和byte的运算byte a 10; byte b 20; byte c a b; // 报错a和b先提升为int结果是int不能赋给byte byte c (byte)(a b); // 正确强转⚠️ 结论byte和byte运算先提升为int再计算所以结果是int需强转回byte。六、字符串类型String不是基本类型Java中用String类定义字符串属于引用类型。1. 字符串拼接public static void main(String[] args) { String s1 hello; String s2 world; System.out.println(s1); System.out.println(s2); System.out.println(s1 s2); // 拼接成helloworld }2. 字符串与整型转换1int转Stringint num 10; String str1 num ; // 方法1拼接空字符串 String str2 String.valueOf(num); // 方法2用valueOf2String转intString str 100; int num Integer.parseInt(str);⚠️ 注意String不是基本类型是引用类型String类。整数变字符串num 或String.valueOf(num)。字符串转整数Integer.parseInt(str)。示例int a 10; String s a; System.out.println(s);会输出10。12总结一张图理清数据类型和变量背下来数据类型基本4类8种 引用String、类、接口、枚举、抽象类……八种包装类除了int和char有特殊其他都是首字母大写变量定义数据类型 变量名 初始值;、初始化必须、类型转换自动/强制、字符串操作 学习小技巧多敲代码尤其是类型转换和变量初始化的例子编译报错时看提示很快就能掌握希望这篇笔记能帮你理清Java数据类型和变量的核心知识点如果有疑问欢迎留言讨论