Java关键字汇总说明

一、概述

  • Java 中有 50 个关键字,由 ASCII 字母组成,不可用作标识符。
  • 其中constgoto为保留字,虽未实际使用但被预留。
  • 有 3 个特殊值:truefalse(布尔字面量)、null(空字面量),它们看似关键字,实则为特殊值。

二、基本数据类型相关关键字(8 个)

用于定义不同存储范围和特性的基本数据类型。

  1. byte:单字节类型

    • 1 个字节(8 位),数据范围:[-128, 127]
    • 注意:bytebyte做算术运算,结果会升级为int
  2. short:短整型

    • 2 个字节(16 位),数据范围:[-32768, 32767]
    • 注意:shortshort做算术运算,结果会升级为int
  3. int:整型

    • 4 个字节(32 位),数据范围:[-2^31, 2^31 - 1]
  4. long:长整型

    • 8 个字节(64 位),数据范围:[-2^63, 2^63 - 1]
    • 注意:long类型的数字后面需要加L或小写l
  5. char:单字符类型

    • 2 个字节(16 位),无符号整数范围:[0, 65535],使用 Unicode 字符集
    • 标准 ASCII 字符集范围[0, 127],其中数字字符['0','9']的编码值是[48,57],大写字母['A','Z']编码值[65,90],小写字母['a','z']编码值[97,122]
    • 字符常量表示方式:直接字符(如'a''尚')、转义字符(如b退格、t水平制表、n换行等)、Unicode 编码十六进制形式(如'u5c1a'表示'尚'
    • 注意:charchar做算术运算,结果为int类型。
  6. float:单精度浮点型

    • 4 个字节,最大精度范围:科学记数法表示数字后的小数点后 6~7 位
    • 注意:float类型的数字后面需要加Ff
  7. double:双精度浮点型

    • 8 个字节,最大精度范围:科学记数法表示数字后的小数点后 15~16 位。
  8. boolean:布尔类型

    • 只能有两个值:truefalse

三、声明引用数据类型相关(3 个)

用于定义类、接口、枚举等引用数据类型。

  1. class:声明类

    • 语法格式:

      【修饰符】 class 类名{ }
      【修饰符】 class 类名 【extends 父类】 【implements 父接口们】{ }
      
    • 类中可包含 5 个成分:成员变量(属性)、成员方法、构造器、代码块、成员内部类。

  2. interface:声明接口

    • 语法格式:

      【修饰符】 interface 接口名{ ... }
      【修饰符】 interface 接口名 【extends 父接口们】{ }
      
    • 特点:

      • JDK1.8 之前,只能有全局静态常量(public static final)和公共抽象方法(public abstract);JDK1.8 之后,可包含公共静态方法(public static)和公共默认方法(public default
      • 无构造器、代码块,但可声明成员内部类、成员内部接口
      • 不能直接实例化,但接口类型的变量可与实现类的对象构成多态引用
      • 可继承多个父接口,Java 类可同时实现多个父接口(非抽象实现类必须实现所有抽象方法)。
  3. enum:声明枚举

    • 语法格式:

      【修饰符】 enum 枚举类型名{ }
      【修饰符】 enum 枚举类型名 【implements 父接口们】{ ... }
      
    • 特点:

      • 枚举类型有已知的几个常量对象,必须在枚举类型的首行声明
      • 不能显式声明父类,默认继承java.lang.Enum类型。

四、特殊空类型(1 个)

  • void:无返回值类型
    • 语法格式:

      // 抽象方法
      【修饰符】 void 方法名(【形参列表】)【throws 异常列表】;
      // 非抽象方法
      【修饰符】 void 方法名(【形参列表】)【throws 异常列表】{ }
      
    • 注意:返回值类型是void的方法中,可使用return;提前结束方法运行。

五、流程控制语句相关(10 个)

用于控制程序执行流程。

  1. if/else:条件判断分支结构

    • 语法格式:

      // 单分支
      if(条件表达式){ 语句块; }
      // 双分支
      if(条件表达式){ 语句块1; }else{ 语句块2; }
      // 多分支
      if(条件表达式1){ 语句块1; }else if(条件表达式2){ 语句块2; }else{ 语句块n+1; }
      
  2. switch/case:选择结构

    • 语法格式:

      switch(表达式){
          case 常量值1: 语句块1; 【break;】
          case 常量值2: 语句块2; 【break;】
          【default: 语句块n+1; 【break;】】
      }
      
    • 执行过程:匹配case常量值进入入口,顺序执行至break或结构结束

    • 注意:

      • 表达式类型:byteshortintcharString(JDK1.7+)、枚举(JDK1.5+)
      • case后必须是常量值,且不可重复。
  3. for:循环

    • 普通 for 循环:

      for(【初始化表达式】; 【循环条件】; 【迭代表达式】){ 循环体语句块; }
      

      执行过程:初始化→判断循环条件→成立则执行循环体→迭代表达式→重复判断

    • 增强 for 循环(foreach):

      for(元素数据类型 元素名 : 数组或集合等容器名){ 循环体语句块; }
      

      用于遍历实现java.lang.Iterable接口的容器(如数组、集合),调用迭代器的hasNext()next()方法

    • 注意:for(;;)为死循环(无break时)。

  4. while:循环

    • 语法格式:

      while(循环条件){ 循环体语句块; }
      
    • 执行过程:先判断循环条件,成立则执行循环体,重复判断。

  5. do:与while结合构成do...while循环

    • 语法格式:

      do{ 循环体语句块; }while(循环条件);
      
    • 特点:至少执行一次循环体,while后分号不可省略。

  6. break:结束结构

    • 用法:结束当前switch结构;结束当前(层)循环,结合标签可结束指定循环。
  7. continue:跳过本次循环

    • 用法:仅用于循环,提前结束本次循环,跳过剩余循环体语句,结合标签可作用于指定循环。
  8. return:结束方法

    • 形式:
      • return;:用于返回值为void的方法,提前结束
      • return 返回值;:用于返回值非void的方法,提前结束并返回结果(必选)。

六、default(1 个)

  • default:默认的
    • 用法:
      • switch...case结构中,表示默认分支
      • JDK1.8 之后接口中用于声明默认方法
      • 注解中用于声明某个配置参数的默认值。

七、关系相关(5 个)

  1. extends:继承关系

    • 用于类继承父类、接口继承父接口
    • 语法:【修饰符】 class 子类 extends 父类{ }【修饰符】 interface 子接口 extends 父接口们{ }
  2. implements:实现关系

    • 用于类实现接口
    • 语法:【修饰符】 class 子类 【extends 父类】 implements 接口们{ }
  3. instanceof:所属关系判断

    • 语法:if(对象 instanceof 类型名){ },判断对象是否属于指定类型,常用于向下转型前避免ClassCastException异常。
  4. this:引用当前对象

    • 用法:
      • this.属性/this.成员变量:区分局部变量与成员变量
      • this.成员方法():调用当前对象的其他成员方法
      • this()/this(实参列表):在构造器首行调用本类其他构造器。
  5. super:引用父类

    • 用法:
      • super.属性:访问父类被隐藏的属性
      • super.方法:调用父类被重写的方法
      • super()/super(实参列表):在子类构造器首行调用父类构造器(super()可省略,super(实参列表)不可省略)。

八、创建对象(1 个)

  • new:创建
    • 用于创建数组对象、类的对象,创建的对象存储在堆中。

九、包相关(2 个)

  1. package:声明包

    • 作用:避免类的重名、控制某些类 / 成员的可见范围、分包组织管理类
    • 语法格式:package 包名;(必须在.java 源文件首行)
    • 命名规范:所有单词小写,用.分割,习惯用公司域名倒置 + 模块名。
  2. import:导包

    • 用于使用其他包的类,语法:

      import 包.类名;
      import 包.*;
      import static 包.类名.静态成员名;
      import static 包.类名.*;
      
    • 注意:使用两个不同包的同名类时,一个用全名称,一个用导包。

十、修饰符

1. 权限修饰符(3 个)

修饰符 本类(任意位置) 本包其他类 其他包的子类 其他包非子类 可修饰成分
private × × × 属性、方法、构造器、成员内部类
缺省 × × 属性、方法、构造器、成员内部类、外部类
protected × 属性、方法、构造器、成员内部类
public 属性、方法、构造器、成员内部类、外部类

2. 其他修饰符(8 个)

  1. static:静态的

    • 可修饰:成员变量(类变量,所有对象共享,存储在方法区)、成员方法(类方法,不可重写,用类名调用)、代码块(静态代码块,类初始化时执行一次)、成员内部类(静态内部类,可包含静态成员)
    • 注意:静态方法中不能出现thissuper,不能直接使用非静态成分。
  2. native:原生的

    • 仅修饰方法,表示方法体非 Java 语言实现,可像普通 Java 方法一样调用和重写。
  3. final:最终的

    • 可修饰:
      • 类(包括外部类、内部类):不能被继承
      • 方法:不能被子类重写,可继承
      • 变量(成员变量和局部变量):值不可修改(常量),建议常量名大写,单词间用_分割(如XXX_YYY_ZZZ)。
  4. abstract:抽象的

    • 可修饰类、方法:
      • 抽象方法:无方法体,包含抽象方法的类必须是抽象类
      • 抽象类:不能直接实例化,子类需实现所有抽象方法(否则子类也为抽象类),可包含类的 5 大成员。
  5. synchronized:同步的

    • 可修饰方法(同步方法)和同步代码块:
      • 同步方法的锁对象:静态方法为当前类.class,非静态方法为this
      • 同步代码块:synchronized(锁对象){ }
  6. volatile:易变的

    • 修饰成员变量,表示变量值易变,多线程中每次读取需从主存获取最新值(不缓存)。
  7. strictfp:严格遵循 FP 模式

    • 修饰类、接口、方法,确保浮点运算遵循 IEEE-754 规范,不同硬件平台结果一致。
  8. transient:瞬时的

    • 修饰成员变量,实现java.io.Serializable接口的类中,该变量不参与序列化。

十一、异常处理相关(5 个)

  1. try:尝试执行

    • 尝试执行代码,若发生异常则抛出异常对象,由catch捕获。
  2. catch:捕获异常

    • 尝试捕获try中抛出的异常对象,类型匹配则处理,否则结束当前方法。
  3. finally:最终块

    • 无论try中是否抛出异常、catch是否捕获、是否有return,都会执行。
  4. throw:抛出

    • 手动抛出异常,语法:throw 异常对象;,未被捕获则结束当前方法并将异常带回调用处,用户自定义异常需手动抛出。
  5. throws:声明抛出异常

    • 在方法签名中声明抛出的异常类型,语法:【修饰符】 返回值类型 方法名(【形参列表】) throws 异常类型列表{ },表示异常由调用者处理。

十二、assert(1 个)

  • assert:断言
    • 语法:assert 布尔表达式; 或 assert 布尔表达式 : "错误信息";
    • 若表达式为false,抛出java.lang.AssertionError,需通过 JVM 参数-ea开启断言功能。
      Pasted image 20250804172705.png

十三、保留字(2 个)

  • const:在 C 语言等中用于声明常量,Java 中未使用但保留。
  • goto:在 C 语言等中用于跳转到指定位置,Java 中未使用但保留。

十四、特殊值(3 个)

  • true:布尔值 “真”
  • false:布尔值 “假”
  • null:空值,调用属性或方法会报空指针异常
  • 三者看似关键字,实则为特殊值。
Java基础

标识符与关键字规则

2025-8-4 17:33:31

Java基础

数据类型-基本数据类型

2025-8-4 17:59:14

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索