Java 关键字(Keywords)
1. 访问控制关键字
java
public // 公共的,对所有类可见
protected // 受保护的,对同一包和子类可见
private // 私有的,仅对本类可见
2. 类、方法、变量修饰符
java
class // 定义类
interface // 定义接口
enum // 定义枚举
abstract // 抽象类或方法
final // 最终的,不可继承/重写/修改
static // 静态的,类级别
synchronized // 同步的,线程安全
transient // 瞬态的,不参与序列化
volatile // 易变的,多线程可见性
3. 程序控制语句
java
// 条件语句
if, else, switch, case, default
// 循环语句
for, while, do, break, continue
// 返回语句
return
// 异常处理
try, catch, finally, throw, throws
// 断言
assert
4. 基本类型相关
java
// 数据类型
byte, short, int, long
float, double
char, boolean
void // 无返回值
// 字面值
true, false, null
5. 类关系相关
java
extends // 继承类
implements // 实现接口
import // 导入包
package // 定义包
this // 当前对象
super // 父类对象
new // 创建对象
instanceof // 类型检查
6. 其他重要关键字
java
native // 本地方法
strictfp // 严格浮点计算
📛 标识符(Identifiers)
1. 标识符命名规则
java
// ✅ 合法的标识符
String userName; // 驼峰命名
int _count; // 以下划线开头
double $price; // 以美元符号开头
String 变量名; // 可以使用中文(但不推荐)
// ❌ 非法的标识符
int 123abc; // 不能以数字开头
String user-name; // 不能包含连字符
double public; // 不能是关键字
int user name; // 不能包含空格
2. 命名规范(约定俗成)
| 类型 | 规范 | 示例 |
|---|---|---|
| 类名 | 大驼峰(PascalCase) | UserService, StudentDao |
| 接口名 | 大驼峰(PascalCase) | Runnable, Comparable |
| 方法名 | 小驼峰(camelCase) | getUserName(), calculateSum() |
| 变量名 | 小驼峰(camelCase) | userName, totalCount |
| 常量名 | 全大写,下划线分隔 | MAX_VALUE, PI |
| 包名 | 全小写,点分隔 | com.example.project |
3. 标识符组成规则
- 首字符:字母、下划线(_)、美元符号($)
- 后续字符:字母、数字、下划线、美元符号
- 长度:无限制,但建议有意义且简洁
- 大小写敏感:
userName和username是不同的
🔍 关键字 vs 标识符 对比表
| 特性 | 关键字(Keywords) | 标识符(Identifiers) |
|---|---|---|
| 作用 | Java语言预定义,有特殊含义 | 程序员自定义,用于命名 |
| 数量 | 50个(Java 8) | 无限个 |
| 大小写 | 全部小写 | 大小写敏感 |
| 可否修改 | 不可修改 | 可以任意命名 |
| 示例 | class, public, static | userName, calculateSum() |
💡 记忆技巧与注意事项
1. 关键字记忆分类
java
// 访问控制(3个):public, protected, private
// 类定义(3个):class, interface, enum
// 数据类型(8个):byte, short, int, long, float, double, char, boolean
// 流程控制(12个):if, else, switch, case, default, for, while, do, break, continue, return
// 异常处理(6个):try, catch, finally, throw, throws, assert
// 修饰符(11个):abstract, final, static, synchronized, transient, volatile, native, strictfp
// 其他(7个):new, this, super, instanceof, extends, implements, package, import
2. 常见错误示例
java
// ❌ 错误:使用关键字作为标识符
int public = 10; // 编译错误
String class = "Test"; // 编译错误
// ✅ 正确:避开关键字
int publicCount = 10; // 可以包含关键字作为一部分
String className = "Test";
// ❌ 错误:非法字符
int user@name = 1; // @不是合法字符
double price# = 99.9; // #不是合法字符
// ❌ 错误:数字开头
int 1stNumber = 1; // 不能以数字开头
String 2ndName = "Tom";
3. 特殊标识符注意事项
java
// 虽然合法但不推荐
String _ = "下划线"; // 单个下划线(Java 9+不推荐)
int $ = 100; // 单个美元符号
// 保留字(不是关键字但保留使用)
var // Java 10+ 局部变量类型推断
_ // Java 9+ 单个下划线不再允许作为标识符
📚 实践练习
练习1:判断下列标识符是否合法
java
// 判断并说明理由:
1. int age;
2. String 2name;
3. double $salary;
4. boolean is-valid;
5. char _initial;
6. float public;
7. String firstName;
8. int num#;
练习2:改进命名
java
// 改进以下标识符:
int a; // 应改为:int age;
String n; // 应改为:String name;
void f() {} // 应改为:void calculate() {}
final int XYZ = 100; // 应改为:final int MAX_VALUE = 100;
练习3:代码规范检查
java
public class testClass { // ❌ 类名应为大驼峰
private int UserAge; // ❌ 变量名应为小驼峰
public static final int max; // ❌ 常量名应为全大写
public void GETDATA() { // ❌ 方法名应为小驼峰
int temp_value = 10; // ❌ 变量名应为小驼峰
}
}
// 修正后:
public class TestClass {
private int userAge;
public static final int MAX;
public void getData() {
int tempValue = 10;
}
}