“万丈高楼平地起,一砖一瓦皆根基。”
对于初学 Java 的你来说,掌握基本语法是迈向编程世界的第一步。
本文将带你深入理解 Java 的数据类型、运算符、控制结构和数组,帮助你打下坚实的基础。
📌 为什么基本语法如此重要?
在学习任何编程语言时,基本语法就像是学习一门新语言的“字母、单词和语法结构”。
它决定了你能否正确地“表达”逻辑,是后续学习面向对象、集合框架、异常处理等高级内容的前提。
即使未来你使用框架开发,底层依然是这些基础语法在支撑。
一、数据类型:Java 的“数据家族”
Java 是强类型语言,每个变量都必须声明其类型。
Java 的数据类型分为两大类:
1. 基本数据类型(Primitive Types)
类型 | 关键字 | 示例 | 说明 |
整型 | byte(1) , short(2) , int(4) , long(8) |
int age = 20; |
int 最常用,long 用于大数 |
浮点型 | float(4) , double(8) |
double price = 9.99; |
double 精度更高,推荐使用 |
字符型 | char(2) |
char grade = 'A'; |
单引号,表示一个字符 |
布尔型 | boolean(一般为1字节) |
boolean isPass = true; |
只有两个值:true / false |
✅ 小贴士:
int
范围:-2^31 到 2^31-1(约 -21亿 ~ 21亿)- 大整数用
long
,结尾加L
:long bigNum = 10000000000L;
- 小数默认是
double
,float
结尾加F
:float f = 3.14F;
2. 引用数据类型(Reference Types)
如 String
、数组、类、接口等,我们将在后续章节详细介绍。
二、运算符:程序的“计算引擎”
运算符用于对变量或值进行操作。
1. 算术运算符
运算符 | 说明 | 示例 |
+ |
加法 | 5 + 3 → 8 |
- |
减法 | 5 - 3 → 2 |
* |
乘法 | 5 * 3 → 15 |
/ |
除法 | 5 / 2 → 2 (整数除法) |
% |
取模(余数) | 5 % 2 → 1 |
⚠️ 注意:整数除法会截断小数部分。要得到小数结果,至少一个操作数为
double
:
double result = 5.0 / 2; // 2.5
2. 比较运算符(返回 boolean)
运算符 | 说明 | 示例 |
== |
等于 | 5 == 5 → true |
!= |
不等于 | 5 != 3 → true |
> |
大于 | 5 > 3 → true |
< |
小于 | 5 < 3 → false |
>= |
大于等于 | 5 >= 5 → true |
<= |
小于等于 | 5 <= 3 → false |
❗ 注意:
==
比较的是值(对基本类型)或引用地址(对对象),字符串比较应使用.equals()
。
3. 逻辑运算符
运算符 | 说明 | 示例 |
&& |
与(短路与) | true && false → false |
|| |
或 |
|
! |
非 | !true → false |
✅ 短路特性:
&&
:左边为false
,右边不执行||
:左边为true
,右边不执行
这可以用于避免空指针异常:
if (str != null && str.length() > 0) { ... }
三、控制结构:程序的“决策大脑”
控制结构决定了程序的执行流程。
1. 条件语句
if-else
语句
int score = 85; if (score >= 90) { System.out.println("优秀"); } else if (score >= 80) { System.out.println("良好"); } else if (score >= 60) { System.out.println("及格"); } else { System.out.println("不及格"); }
switch
语句(适用于等值判断)
int day = 3; String dayName; switch (day) { case 1: dayName = "星期一"; break; case 2: dayName = "星期二"; break; case 3: dayName = "星期三"; break; default: dayName = "未知"; } System.out.println(dayName); // 星期三
✅ 支持类型:
byte
,short
,int
,char
,String
(Java 7+)、枚举。
2. 循环语句
for
循环(已知次数)
// 打印 1 到 10 for (int i = 1; i <= 10; i++) { System.out.println(i); }
while
循环(条件满足时执行)
int i = 1; while (i <= 10) { System.out.println(i); i++; }
do-while
循环(至少执行一次)
int i = 1; do { System.out.println(i); i++; } while (i <= 10);
✅ 三者区别:
for
:适合计数循环while
:适合条件循环do-while
:适合至少执行一次的场景(如菜单选择)
四、数组:存储多个同类型数据的“容器”
数组是用于存储固定大小、相同类型元素的有序集合。
1. 一维数组
✅ 定义与初始化
// 方式一:声明 + 创建 int[] nums; nums = new int[5]; // 创建长度为5的数组,初始值为0 // 方式二:声明并初始化 int[] scores = new int[]{85, 92, 78, 96, 88}; // 方式三:简化写法(推荐) int[] ages = {20, 22, 21, 19, 23};
✅ 访问与遍历
// 访问 System.out.println(ages[0]); // 20 // 遍历:for 循环 for (int i = 0; i < ages.length; i++) { System.out.println(ages[i]); } // 遍历:增强 for 循环(推荐) for (int age : ages) { System.out.println(age); }
✅
length
是属性,不是方法(注意没有括号)!
2. 二维数组
二维数组可以看作“数组的数组”。
// 定义 3x3 的二维数组 int[][] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; // 访问 System.out.println(matrix[0][1]); // 2 // 遍历 for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[i].length; j++) { System.out.print(matrix[i][j] + " "); } System.out.println(); }
输出:
1 2 3 4 5 6 7 8 9
✅ 实战练习:巩固所学
练习1:计算数组平均值
int[] scores = {85, 92, 78, 96, 88}; int sum = 0; for (int score : scores) { sum += score; } double average = (double) sum / scores.length; System.out.println("平均分:" + average);
练习2:查找最大值
int[] nums = {3, 7, 2, 9, 1}; int max = nums[0]; for (int i = 1; i < nums.length; i++) { if (nums[i] > max) { max = nums[i]; } } System.out.println("最大值:" + max);
🎯 总结:基本语法核心要点
模块 | 核心要点 |
数据类型 | 掌握 int , double , char , boolean ,理解 long 和 float 的使用场景 |
运算符 | 算术、比较、逻辑运算符的优先级与使用 |
控制结构 | if-else 、switch 、for 、while 、do-while 的正确使用 |
数组 | 一维数组的定义、初始化、遍历;理解二维数组的结构 |
✅ 学习建议:
- 每个知识点都动手写代码验证
- 遇到问题,使用
System.out.println()
打印变量值调试- 多做练习,形成“肌肉记忆”