Skip to content

关键字与保留字

Java 关键字是语言预先定义的、具有特殊含义的单词,共 50 个(49 个正式关键字 + 1 个保留字)。

访问控制修饰符

关键字说明
public公共访问,可在任何地方访问
protected受保护访问,同包或子类可访问
private私有访问,仅本类可访问
java
public class MyClass {
    public int publicField;
    protected int protectedField;
    private int privateField;
    
    public void publicMethod() { }
    protected void protectedMethod() { }
    private void privateMethod() { }
}

类、接口、抽象相关

关键字说明
class声明类
interface声明接口
abstract声明抽象类或抽象方法
implements类实现接口
extends类继承或接口继承
enum声明枚举
java
// 抽象类
public abstract class Animal {
    abstract void eat();
}

// 接口
public interface Flyable {
    void fly();
}

// 类继承
class Dog extends Animal {
    @Override
    void eat() {
        System.out.println("Dog is eating");
    }
}

// 类实现接口
class Bird extends Animal implements Flyable {
    @Override
    void eat() {
        System.out.println("Bird is eating");
    }
    
    @Override
    public void fly() {
        System.out.println("Bird is flying");
    }
}

// 枚举
enum Season {
    SPRING, SUMMER, AUTUMN, WINTER
}

数据类型关键字

关键字说明
byte字节型,8位有符号整数
short短整型,16位有符号整数
int整型,32位有符号整数
long长整型,64位有符号整数
float单精度浮点型,32位
double双精度浮点型,64位
boolean布尔型,true 或 false
char字符型,16位 Unicode 字符
java
byte b = 127;
short s = 32767;
int i = 2147483647;
long l = 9223372036854775807L;
float f = 3.14f;
double d = 3.1415926;
boolean flag = true;
char c = 'A';

流程控制关键字

关键字说明
if条件语句
elseif 的否定分支
switch多分支选择
caseswitch 的选项
defaultswitch 的默认选项
forfor 循环
whilewhile 循环
dodo-while 循环
break跳出循环或 switch
continue跳过本次循环
return方法返回
java
// if-else
if (condition) {
    // ...
} else {
    // ...
}

// switch
switch (value) {
    case 1:
        // ...
        break;
    case 2:
        // ...
        break;
    default:
        // ...
}

// for 循环
for (int i = 0; i < 10; i++) {
    if (i == 5) break;
    if (i == 3) continue;
}

// while 循环
while (condition) {
    // ...
}

// do-while 循环
do {
    // ...
} while (condition);

方法与变量相关

关键字说明
void无返回值
static静态成员
final常量或禁止重写/继承
new创建对象
java
public class Example {
    static int staticField = 0;
    final int CONSTANT = 100;
    
    public static void staticMethod() { }
    
    public final void finalMethod() { }
    
    public void newObject() {
        Object obj = new Object();
    }
}

对象相关

关键字说明
this当前对象引用
super父类引用
instanceof类型判断
java
class Parent {
    void parentMethod() { }
}

class Child extends Parent {
    void childMethod() {
        // this 指向当前对象
        this.childMethod();
        
        // super 指向父类
        super.parentMethod();
        
        // instanceof 类型判断
        if (this instanceof Child) {
            System.out.println("This is a Child instance");
        }
    }
}

异常处理

关键字说明
try尝试执行代码块
catch捕获异常
finally最终执行的代码块
throw抛出异常
throws声明方法可能抛出的异常
java
try {
    // 可能抛出异常的代码
    int result = 10 / 0;
} catch (ArithmeticException e) {
    // 处理除零异常
    System.out.println("Cannot divide by zero");
} catch (Exception e) {
    // 处理其他异常
    System.out.println("Other error: " + e.getMessage());
} finally {
    // 无论是否异常都会执行
    System.out.println("Finally block");
}

// throw 抛出异常
public void validate(int age) throws IllegalArgumentException {
    if (age < 0) {
        throw new IllegalArgumentException("Age cannot be negative");
    }
}

包相关

关键字说明
package声明当前类所在的包
import导入其他包的类
java
package com.example.service;

import java.util.List;
import com.example.model.User;

修饰符

关键字说明
native本地方法(非 Java 实现)
strictfp严格浮点计算
synchronized同步(线程安全)
transient序列化时忽略字段
volatile可见性保证
java
public class Example {
    native void nativeMethod();  // 本地方法
    
    strictfp double calculate() {  // 严格浮点
        return Math.sqrt(2);
    }
    
    private synchronized void syncMethod() { }  // 同步方法
    
    private volatile boolean running;  // 可见性
    
    private transient String tempData;  // 不序列化
}

其他关键字

关键字说明
assert断言(调试用)
java
public void withdraw(double amount) {
    assert amount > 0 : "Amount must be positive";
    // ...
}

保留字

保留字说明
goto保留但未使用
const保留但未使用(用 final 代替)

使用注意事项

关键字全部小写,区分大小写。

java
// 错误:关键字不能大写
Int x = 10;
String STR = "Hello";

不能使用关键字作为标识符(类名、方法名、变量名等)。

java
// 这些都会导致编译错误
// class class { }
// class public { }
// const int x = 1;
// goto label;

true、false、null 是字面量,不是关键字,但同样不能用作标识符。

java
boolean flag = true;
boolean isEmpty = false;
String str = null;

基于 VitePress 构建