跳到主要内容
Java 核心语法:从变量到流程控制 | 极客日志
Java java
Java 核心语法:从变量到流程控制 Java 核心语法涵盖变量定义、数据类型(基本与引用)、运算符及流程控制。重点包括基本数据类型与引用数据类型的区别、自动与强制类型转换规则、算术与逻辑运算符使用,以及分支(if-else, switch)和循环(for, while, do-while)结构。掌握这些基础是学习面向对象编程的前提。
魔法巫师 发布于 2026/2/8 更新于 2026/6/2 29 浏览Java 核心语法:从变量到流程控制
2.1 Java 语法基础概述
2.1.1 学习目标与重点提示
学习目标 :掌握 Java 的基本语法结构、变量类型、数据类型转换以及运算符的使用。
重点 :基本数据类型与引用数据类型的区别、自动类型转换与强制类型转换的规则。
2.1.2 Java 语法的基本规则
Java 是一种强类型语言,具有严格的语法规则:
大小写敏感 :Java 中的关键字、类名、方法名、变量名等都是大小写敏感的。例如,HelloWorld和 helloworld是两个不同的名称。
分号结束 :Java 语句必须以分号(;)结束,否则会导致编译错误。
代码块 :用大括号({})包围的代码称为代码块,用于表示一个代码单元(如类、方法、循环体等)。
注释 :Java 支持单行注释、多行注释和文档注释。
标识符 :用于命名类、方法、变量等的名称称为标识符。标识符必须以字母、下划线(_)或美元符号($)开头,后面可以跟字母、数字、下划线或美元符号。标识符不能是 Java 关键字。
2.1.3 Java 关键字
Java 关键字是具有特殊含义的保留字,不能作为标识符使用。常用的 Java 关键字包括:
基本类型 :int、long、float、double、char、boolean、byte、short
控制语句 :if、else、switch、case、default、for、while、do、break、continue、return
访问修饰符 :public、protected、private
类相关 :class、interface、extends、implements、new、this、super
其他 :static、final、void、package、import
2.2 变量与数据类型
2.2.1 变量的定义与使用
变量是用于存储数据的容器。在 Java 中,定义变量需要指定变量的类型和名称。
变量的定义格式 :
数据类型 变量名;
变量的初始化 :
数据类型 变量名 = 初始值;
int age;
age = 18 ;
int height = 175 ;
⚠️ 注意 :在使用变量之前,必须先声明并初始化,否则会导致编译错误。
2.2.2 Java 的数据类型 Java 的数据类型分为两大类:基本数据类型 和引用数据类型 。
整数类型 :byte(1 字节)、short(2 字节)、int(4 字节)、long(8 字节)
浮点数类型 :float(4 字节)、double(8 字节)
字符类型 :char(2 字节,用于存储 Unicode 字符)
布尔类型 :boolean(1 位,用于存储 true 或 false)
引用类型 :类(如 String、HelloWorld 等)、接口(如 Runnable、Serializable 等)、数组(如 int[]、String[] 等)
引用数据类型 :存储的是数据的引用(即内存地址),包括类、接口、数组等。
String name = "张三" ;
int [] nums = {1 , 2 , 3 };
基本数据类型 :直接存储数据的值,包括 8 种类型。
byte b = 10 ;
short s = 200 ;
int i = 1000 ;
long l = 1000000L ;
float f = 3.14F ;
double d = 3.1415926 ;
char c = 'A' ;
boolean flag = true ;
对比项 基本数据类型 引用数据类型 存储内容 直接存储数据的值 存储数据的引用(内存地址) 内存区域 栈内存 堆内存(引用变量在栈内存) 默认值 有默认值(如 int 默认值为 0) 默认值为 null 比较方式 使用==比较值 使用==比较引用,使用 equals() 方法比较内容
2.2.3 数据类型转换 在 Java 中,当将一种数据类型转换为另一种数据类型时,需要遵循一定的规则。数据类型转换分为自动类型转换 和强制类型转换 。
转换规则 :byte → short → int → long → float → double
char → int
转换格式 :目标数据类型 变量名 = (目标数据类型) 源数据;
强制类型转换 :当将一个大范围的数据类型转换为小范围的数据类型时,需要显式指定,否则会导致编译错误。
int i = 1000 ;
byte b = (byte )i;
⚠️ 注意 :强制类型转换可能会导致数据溢出或精度丢失,应谨慎使用。例如:
int i = 128 ;
byte b = (byte )i;
自动类型转换 :当将一个小范围的数据类型转换为大范围的数据类型时,会自动进行转换,无需显式指定。
byte b = 10 ;
short s = b;
int i = s;
long l = i;
float f = l;
double d = f;
2.3 运算符 运算符是用于对数据进行运算的符号。Java 支持多种运算符:
2.3.1 算术运算符 用于进行算术运算,包括:+(加)、-(减)、*(乘)、/(除)、%(取模)、++(自增)、--(自减)。
int a = 10 ;
int b = 3 ;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
a++;
System.out.println(a);
--b;
System.out.println(b);
⚠️ 注意 :++ 和 -- 运算符可以放在变量的前面或后面,放在前面表示先自增/自减,再使用变量的值;放在后面表示先使用变量的值,再自增/自减。例如:
int a = 10 ;
int b = ++a;
System.out.println(b);
int c = 10 ;
int d = c++;
System.out.println(d);
2.3.2 关系运算符 用于比较两个表达式的值,返回 boolean 类型的结果,包括:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
int a = 10 ;
int b = 20 ;
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a >= b);
System.out.println(a <= b);
⚠️ 注意 :不要将==用于比较引用数据类型的内容,应该使用 equals() 方法。例如:
String s1 = "hello" ;
String s2 = "hello" ;
String s3 = new String ("hello" );
System.out.println(s1 == s2);
System.out.println(s1 == s3);
System.out.println(s1.equals(s3));
2.3.3 逻辑运算符 用于进行逻辑运算,返回 boolean 类型的结果,包括:&&(逻辑与)、||(逻辑或)、!(逻辑非)。
&& :当两个操作数都为 true 时,结果为 true,否则为 false。如果第一个操作数为 false,第二个操作数不会被执行(短路与)。
|| :当两个操作数都为 false 时,结果为 false,否则为 true。如果第一个操作数为 true,第二个操作数不会被执行(短路或)。
! :当操作数为 true 时,结果为 false;当操作数为 false 时,结果为 true。
boolean a = true ;
boolean b = false ;
System.out.println(a && b);
System.out.println(a || b);
System.out.println(!a);
2.3.4 赋值运算符 用于给变量赋值,包括:=(简单赋值)、+=(加赋值)、-=(减赋值)、*=(乘赋值)、/=(除赋值)、%=(取模赋值)。
int a = 10 ;
a += 5 ;
a -= 3 ;
a *= 2 ;
a /= 4 ;
a %= 5 ;
2.3.5 条件运算符 条件运算符是 Java 中唯一的三元运算符,格式为:条件表达式 ? 表达式 1 : 表达式 2。当条件表达式为 true 时,执行表达式 1;当条件表达式为 false 时,执行表达式 2。
int a = 10 ;
int b = 20 ;
int max = a > b ? a : b;
System.out.println(max);
2.4 流程控制 流程控制用于控制程序的执行顺序,包括顺序结构 、分支结构 和循环结构 。
2.4.1 顺序结构 顺序结构是程序默认的执行顺序,即按照代码的编写顺序从上到下依次执行。
int a = 10 ;
int b = 20 ;
int sum = a + b;
System.out.println("sum = " + sum);
2.4.2 分支结构 分支结构用于根据条件执行不同的代码块,包括 if-else 语句和 switch 语句。
if 语句 :当条件为 true 时,执行 if 块中的代码。
if-else 语句 :当条件为 true 时,执行 if 块中的代码;否则,执行 else 块中的代码。
if-else if-else 语句 :用于处理多个条件。
switch 语句 :用于根据表达式的值执行不同的代码块。表达式的值可以是 byte、short、int、char、String(JDK 7 及以后)或枚举类型。
case :后面跟表达式可能的值,break 用于跳出 switch 语句。
default :用于处理所有 case 不匹配的情况。
String day = "Monday" ;
switch (day){
case "Monday" :
System.out.println("星期一" );
break ;
case "Tuesday" :
System.out.println("星期二" );
break ;
case "Wednesday" :
System.out.println("星期三" );
break ;
case "Thursday" :
System.out.println("星期四" );
break ;
case "Friday" :
System.out.println("星期五" );
break ;
case "Saturday" :
case "Sunday" :
System.out.println("周末" );
break ;
default :
System.out.println("无效的星期" );
break ;
}
⚠️ 注意 :如果 case 后面没有 break 语句,程序会继续执行下一个 case 中的代码,直到遇到 break 或 switch 语句结束(称为'case 穿透')。
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("不及格" );
}
2.4.3 循环结构 循环结构用于重复执行一段代码,包括 for 循环、while 循环和 do-while 循环。
for 循环 :用于已知循环次数的情况。格式:for (初始化语句; 循环条件; 迭代语句) { 循环体 }
while 循环 :用于未知循环次数的情况。格式:while (循环条件) { 循环体; 迭代语句 }
do-while 循环 :与 while 循环类似,但会先执行一次循环体,然后再判断循环条件。格式:do { 循环体; 迭代语句 } while (循环条件);
int i = 1 ;
do {
System.out.println(i);
i++;
}while (i <= 10 );
int i = 1 ;
while (i <= 10 ){
System.out.println(i);
i++;
}
for (int i = 1 ; i <= 10 ; i++){
System.out.println(i);
}
2.4.4 循环控制语句 循环控制语句用于控制循环的执行流程,包括 break、continue 和 return。
return :用于从当前方法中返回,结束方法的执行。
public static void main (String[] args) {
for (int i = 1 ; i <= 10 ; i++){
if (i == 6 ){
return ;
}
System.out.println(i);
}
}
continue :用于跳过当前循环的剩余语句,继续执行下一次循环。
for (int i = 1 ; i <= 10 ; i++){
if (i % 2 == 0 ){
continue ;
}
System.out.println(i);
}
break :用于跳出当前循环(如 for、while、do-while)或 switch 语句。
for (int i = 1 ; i <= 10 ; i++){
if (i == 6 ){
break ;
}
System.out.println(i);
}
2.5 常见问题与解决方案
2.5.1 变量未初始化 解决方案 :在使用变量之前,必须先声明并初始化。例如:
int a;
System.out.println(a);
int b = 0 ;
System.out.println(b);
2.5.2 数据类型转换错误 问题 1 :编译时提示'错误:不兼容的类型:从 double 转换到 int 可能会有损失'。
double d = 3.14 ;
int i = (int )d;
int i = 128 ;
byte b = (byte )i;
long l = 128 ;
2.5.3 循环死循环 解决方案 :检查循环条件和迭代语句,确保循环能够正常结束。例如:
for (int i = 1 ; i <= 10 ; i--){
System.out.println(i);
}
for (int i = 1 ; i <= 10 ; i++){
System.out.println(i);
}
2.5.4 switch 语句的 case 穿透 问题 :执行 switch 语句时,多个 case 的代码都被执行。
解决方案 :在每个 case 的代码块后面添加 break 语句。例如:
int num = 2 ;
switch (num){
case 1 :
System.out.println("1" );
case 2 :
System.out.println("2" );
case 3 :
System.out.println("3" );
break ;
}
switch (num){
case 1 :
System.out.println("1" );
break ;
case 2 :
System.out.println("2" );
break ;
case 3 :
System.out.println("3" );
break ;
}
总结 本章我们学习了 Java 的核心语法,包括语法基础、变量与数据类型、运算符以及流程控制。其中,基本数据类型与引用数据类型的区别、自动类型转换与强制类型转换的规则、流程控制语句的使用是本章的重点内容。从下一章开始,我们将学习 Java 的面向对象编程。
相关免费在线工具 Keycode 信息 查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
Escape 与 Native 编解码 JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
JavaScript / HTML 格式化 使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
JavaScript 压缩与混淆 Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online