Java2:Java数据类型与变量:编程世界的基础法则

📅 2026/7/6 4:13:15
Java2:Java数据类型与变量:编程世界的基础法则
目录写在前面一、认识常量程序中不变的那些事二、数据类型给数据贴上标签基本数据类型一览表三、变量数据的容器变量的定义和使用使用变量的三个原则四、深入理解各数据类型4.1 整型家族四种选择各有千秋4.2 浮点型精度的代价4.3 字符型不仅仅是英文字母4.4 布尔型非真即假五、类型转换数据变形记自动类型转换隐式转换强制类型转换显式转换类型提升运算中的隐形规则六、字符串最特殊的引用类型总结与练习动手试一试写在前面上一篇文章我们完成了第一个Java程序的编写理解了Java程序的基本结构。今天我们将深入探讨编程中最基础也最重要的概念——数据类型与变量。如果把编程比作盖房子数据类型就是砖块和水泥的种类变量则是存放建筑材料的仓库。掌握了它们你就真正踏入了Java编程的大门。一、认识常量程序中不变的那些事在编写程序时我们会遇到两类数据一类始终不变另一类随时可能变化。前者我们称之为常量后者则是变量。还记得我们的Hello World程序吗System.out.println(Hello World)中的Hello World就是一个典型的常量——不管程序运行多少次它都不会改变。常量可以分为以下几种常量类型示例说明字符串常量你好、12345用双引号包裹整型常量100、-50不带小数点的数字浮点数常量3.14、0.618带小数点的数字字符常量A、好用单引号包裹的单个字符布尔常量true、false只有这两个值空常量null表示什么都没有这些常量的类型恰恰对应了Java中的数据类型。理解这一点我们就找到了通往下一个知识点的桥梁。二、数据类型给数据贴上标签Java是一门强类型语言这意味着每一个数据都必须有明确的类型。类型决定了数据能取什么值、能做什么运算、占多少内存。Java的数据类型分为两大类数据类型 ├── 基本数据类型四类八种 │ ├── 整型byte、short、int、long │ ├── 浮点型float、double │ ├── 字符型char │ └── 布尔型boolean └── 引用数据类型如String、数组、类等基本数据类型一览表类型关键字占用空间取值范围字节型byte1字节-128 ~ 127短整型short2字节-32768 ~ 32767整型int4字节约-21亿 ~ 21亿长整型long8字节极大范围单精度浮点float4字节精度较低双精度浮点double8字节精度较高字符型char2字节0 ~ 65535布尔型boolean未明确规定true / false一个重要的设计理念Java在设计时就保证了基本数据类型的大小与平台无关。无论在Windows、Linux还是Mac上int永远是4个字节long永远是8个字节。这为实现一次编写到处运行奠定了基础。三、变量数据的容器如果说常量是固定不变的值那么变量就是可以变化的存储单元。你可以把它想象成一个盒子——盒子上贴了标签变量名规定了它能装什么东西数据类型而里面的东西值可以随时替换。变量的定义和使用// 基本语法数据类型 变量名 初始值; int age 22; // 定义一个整型变量age值为22 double height 1.78; // 定义一个浮点型变量height char gender 男; // 定义一个字符型变量gender boolean isStudent true; // 定义一个布尔型变量isStudent // 变量的值可以修改 age 23; // 现在age的值变成了23 // 一行定义多个同类型变量 int x 10, y 20, z 30;使用变量的三个原则先声明后使用变量必须先定义才能使用使用前必须赋值即使定义时没给值使用前也必须赋值否则编译报错值不能超出类型范围给int变量赋值12345678901234会编译失败四、深入理解各数据类型4.1 整型家族四种选择各有千秋为什么Java要提供四种整型这就像买衣服有不同的尺码——选择合适的尺寸既合身又不浪费。byte1字节适合节省内存的场景比如处理大量二进制数据short2字节用得较少int4字节日常开发最常用的整型long8字节需要表示很大数值时使用特别提醒定义long类型变量时建议在数值后加L大写long bigNumber 10000000000L; // 不加L会编译报错4.2 浮点型精度的代价浮点数用于表示小数但有一个重要特点需要牢记浮点数不是精确值而是近似值。试试这段代码double num 1.1; System.out.println(num * num); // 你猜输出什么结果是1.2100000000000002而不是预期的1.21。这是因为计算机用有限的二进制位来表示无限的小数必然存在精度误差。在实际开发中如果需要精确计算比如金额应该使用BigDecimal类而不是浮点数。4.3 字符型不仅仅是英文字母Java的char类型使用Unicode编码占用2个字节这意味着它可以表示包括中文在内的几乎所有文字char ch1 A; char ch2 好; // Java中没问题 char ch3 20013; // 也可以用数字表示字符4.4 布尔型非真即假布尔类型只有两个值true和false。值得注意的是Java的布尔类型不能与整数互转——你不能用1表示true也不能用0表示false。五、类型转换数据变形记在实际编程中不同类型的数据经常需要相互转换。Java提供了两种转换方式。自动类型转换隐式转换当小范围类型向大范围类型转换时Java会自动完成int a 10; long b a; // 自动转换没问题转换路线byte → short → int → long → float → double强制类型转换显式转换当大范围类型向小范围类型转换时需要手动强制转换long a 100L; int b (int)a; // 需要强制转换可能丢失数据强制转换就像把大象塞进冰箱——虽然能做到但可能损失一些数据。类型提升运算中的隐形规则当不同类型的数据进行运算时小类型会自动提升为大类型int a 10; long b 20; long result a b; // a先提升为long再运算 byte x 10; byte y 20; byte sum (byte)(x y); // 必须强转因为xy的结果是int一个重要规则byte、short、char参与运算时会先提升为int。六、字符串最特殊的引用类型String是Java中使用频率最高的引用类型它不属于基本数据类型。字符串用双引号包裹可以进行拼接操作String name 小明; String greeting 你好 name ; // 输出你好小明字符串与数字之间的转换也很常用// 数字转字符串 int num 42; String str1 num ; // 方式一 String str2 String.valueOf(num); // 方式二 // 字符串转数字 String str 100; int num2 Integer.parseInt(str);总结与练习今天我们学习了Java编程中最重要的基础概念常量程序中不变的值数据类型基本类型四类八种和引用类型变量存储可变数据的容器类型转换自动转换、强制转换和类型提升动手试一试试着写出以下代码的输出结果int a 5; int b 2; System.out.println(a / b); // 输出 System.out.println((double)a / b); // 输出 byte c 100; byte d 28; byte e (byte)(c d); System.out.println(e); // 输出提示128超出了byte范围下一篇文章我们将学习Java中的运算符和表达式敬请期待