Java 基础语法
环境装好后,我们来系统过一遍 Java 的基础语法。这一章不涉及复杂概念,只讲程序"长什么样"——结构、注释、分号规则、关键字、命名约定。读完你就能看懂任何 Java 代码的整体框架。
1. Java 程序的基本结构
一个可执行的 Java 程序最少包含三部分:class 声明、main 方法、方法体。看这个例子:
// 文件名:SyntaxDemo.java
// 一个 Java 程序至少有一个 class,且只能有一个 public class
public class SyntaxDemo {
// main 方法:程序入口,签名固定
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
// 文件名必须和 public class 名完全一致(区分大小写)几个要点:
public class:声明一个公共类。一个.java文件中只能有一个public class,且文件名必须和它一致(区分大小写)。class中的代码:Java 是"纯面向对象"语言,所有代码都写在类里,没有"裸函数"。public static void main(String[] args):程序入口,签名固定不变(照抄就行,后面章节会逐字解释)。public:可被外部调用;static:静态方法,无需创建对象;void:无返回值;String[] args:命令行参数。System.out.println(...):打印并换行,等价于 Python 的print()。还有System.out.print()(不换行)和System.err.println()(输出到错误流,红色)。
2. 三种注释
注释是给人看的,编译器忽略。Java 的注释有三种:
// 单行注释:双斜杠开头,到行尾结束
/* 多行注释:用 /* 包裹,
可以跨多行,
编译器会忽略其中的内容 */
/**
* 文档注释(Javadoc):用 /** 开头
* 会被 javadoc 工具读取,自动生成 API 文档
* @param args 命令行参数
* @author 小明
*/
public void run(String[] args) {
// ...
}其中文档注释(Javadoc)是 Java 的特色:javadoc 工具能读取 /** */ 里的内容自动生成 HTML API 文档,标签如 @param、@return、@author 都有固定含义。所有公共 API 都建议写 Javadoc——这是 Java 工程化的标志。
3. 语句、分号与大小写
Java 和 C/C++ 一样,每条语句以英文分号 ;结尾,且严格区分大小写。
public class Demo {
public static void main(String[] args) {
int a = 10; // 每条语句以分号结尾(英文分号 ;)
int b = 20;
int sum = a + b; // 一行一条语句,推荐
// 也可以一行多条(用分号隔开),但不推荐,可读性差
int c = 1; int d = 2;
System.out.println(sum);
}
}新手最常踩的坑:
- 用中文分号
;结尾 → 编译报错(几乎是中文输入法惹的祸)。 system.out.println写成小写 system → 找不到符号(Java 区分大小写,正确是System)。- 忘了分号 → 报错 "';' expected"。
4. 标识符命名规则
标识符就是程序员自己起的名字(变量、方法、类、包)。Java 的命名规则:
- 由字母、数字、下划线
_、美元符$组成。 - 不能以数字开头。
- 不能和关键字重名(如
class、int、void)。 - 区分大小写,长度无限制。
// 合法标识符:字母/数字/下划线/$,不能以数字开头
int age = 20;
int _count = 0;
int $price = 100;
int maxValue = 999; // 驼峰命名
String userName = "小明";
// ❌ 非法标识符(编译报错)
// int 2nd = 1; // 数字开头
// int my name = "x"; // 包含空格
// int class = 1; // class 是关键字
// Java 区分大小写:name 和 Name 是两个不同变量
int name = 1;
int Name = 2; // 不会冲突5. 命名约定(社区习惯)
规则是"能不能编译",约定是"显得专业不专业"。Java 社区有一套广泛遵守的命名习惯:
// 类名:大驼峰(PascalCase),首字母大写
class Student { ... }
class HttpClientUtils { ... }
// 方法名/变量名:小驼峰(camelCase),首字母小写
int studentAge = 20;
void printReport() { ... }
// 常量:全大写,下划线分词
final double PI = 3.14159;
final int MAX_CONNECTIONS = 100;
// 包名:全小写,域名倒写
package com.fertijourney.utils;这些约定不是编译器要求的,但所有 Java 工程师都遵守——违反约定会被同事吐槽,代码可读性也会大幅下降。
6. Java 的 50 个关键字
Java 一共 50 个关键字(含 2 个保留字 goto、const,Java 没用但也不让你用)。按用途分组记忆更容易:
- 数据类型:
byteshortintlongfloatdoublecharbooleanvoid - 流程控制:
ifelseswitchcasedefaultforwhiledobreakcontinuereturn - 类/对象:
classinterfaceenumextendsimplementsnewthissuperinstanceof - 修饰符:
publicprotectedprivateabstractfinalstaticsynchronizednativetransientvolatilestrictfp - 异常:
trycatchfinallythrowthrows - 包/导入:
packageimport - 其他:
assertconst(保留)goto(保留)enumvolatile
特别注意:true、false、null 看起来像关键字,其实在 Java 规范里是"字面量"(literal)而非关键字——但效果差不多,你也不能用它们当变量名。
7. 空白符与代码格式
Java 对空白符(空格、Tab、换行)不敏感,你可以把整个程序写在一行,但那样会被同事打死。Java 社区有约定俗成的格式:
- 左花括号
{:跟在当前行末尾(K&R 风格),不另起一行。 - 缩进 4 个空格(不用 Tab,IDE 默认会处理)。
- 运算符两侧加空格:
a + b,而不是a+b。 - 一行不超过 120 个字符(IDEA 默认值)。
用 IDEA 的话,按 Ctrl+Alt+L(mac: Cmd+Option+L)会自动格式化整个文件。也可以装 google-java-format 插件,强制 Google 风格。
小结
这一章你了解了 Java 程序的整体骨架:class → main → 语句;知道了三种注释、分号规则、命名约定;记住了 50 个关键字的分组。下一篇我们看 Java 的变量——这是写任何代码之前必须搞清楚的事。
← 上一篇 Java 环境安装
下一篇 Java 变量 →