## 关键字 “二哥,就我之前学过的这些 Java 代码中,有 public、static、void、main 等等,它们应该都是关键字吧?”三妹的脸上泛着甜甜的笑容,我想她在学习 Java 方面已经变得越来越自信了。 “是的,三妹。Java 中的关键字可不少呢!你一下子可能记不了那么多,不过,先保留个印象吧,对以后的学习会很有帮助。” PS:按照首字母的自然顺序排列。 1. **abstract:** 用于声明抽象类,以及抽象方法。 2. **boolean:** 用于将变量声明为布尔值类型,只有 true 和 false 两个值。 3. **break:** 用于中断循环或 switch 语句。 4. **byte:** 用于声明一个可以容纳 8 个比特的变量。 5. **case:** 用于在 switch 语句中标记条件的值。 6. **catch:** 用于捕获 try 语句中的异常。 7. **char:** 用于声明一个可以容纳无符号 16 位比特的 [Unicode 字符](https://mp.weixin.qq.com/s/pNQjlXOivIgO3pbYc0GnpA)的变量。 8. **class:** 用于声明一个类。 9. **continue:** 用于继续下一个循环,可以在指定条件下跳过其余代码。 10. **default:** 用于指定 switch 语句中除去 case 条件之外的默认代码块。 11. **do:** 通常和 while 关键字配合使用,do 后紧跟循环体。 12. **double:** 用于声明一个可以容纳 64 位浮点数的变量。 13. **else:** 用于指示 if 语句中的备用分支。 14. **enum:** 用于定义一组固定的常量(枚举)。 15. **extends:** 用于指示一个类是从另一个类或接口继承的。 16. **final:** 用于指示该变量是不可更改的。 17. **finally:** 和 `try-catch` 配合使用,表示无论是否处理异常,总是执行 finally 块中的代码。 18. **float:** 用于声明一个可以容纳 32 位浮点数的变量。 19. **for:** 用于声明一个 for 循环,如果循环次数是固定的,建议使用 for 循环。 20. **if:** 用于指定条件,如果条件为真,则执行对应代码。 21. **implements:** 用于实现接口。 22. **import:** 用于导入对应的类或者接口。 23. **instanceof:** 用于判断对象是否属于某个类型(class)。 24. **int:** 用于声明一个可以容纳 32 位带符号的整数变量。 25. **interface:** 用于声明接口。 26. **long:** 用于声明一个可以容纳 64 位整数的变量。 27. **native:** 用于指定一个方法是通过调用本机接口(非 Java)实现的。 28. **new:** 用于创建一个新的对象。 29. **null:** 如果一个变量是空的(什么引用也没有指向),就可以将它赋值为 null,和空指针异常息息相关。 30. **package:** 用于声明类所在的包。 31. **private:** 一个访问权限修饰符,表示方法或变量只对当前类可见。 32. **protected:** 一个访问权限修饰符,表示方法或变量对同一包内的类和所有子类可见。 33. **public:** 一个访问权限修饰符,除了可以声明方法和变量(所有类可见),还可以声明类。`main()` 方法必须声明为 public。 34. **return:** 用于在代码执行完成后返回(一个值)。 35. **short:** 用于声明一个可以容纳 16 位整数的变量。 36. **static:** 表示该变量或方法是静态变量或静态方法。 37. **strictfp:** 并不常见,通常用于修饰一个方法,确保方法体内的浮点数运算在每个平台上执行的结果相同。 38. **super:** 可用于调用父类的方法或者字段。 39. **switch:** 通常用于三个(以上)的条件判断。 40. **synchronized:** 用于指定多线程代码中的同步方法、变量或者代码块。 41. **this:** 可用于在方法或构造函数中引用当前对象。 42. **throw:** 主动抛出异常。 43. **throws:** 用于声明异常。 44. **transient:** 修饰的字段不会被序列化。 45. **try:** 于包裹要捕获异常的代码块。 46. **void:** 用于指定方法没有返回值。 47. **volatile:** 保证不同线程对它修饰的变量进行操作时的可见性,即一个线程修改了某个变量的值,新值对其他线程来说是立即可见的。 48. **while:** 如果循环次数不固定,建议使用 while 循环。 “好了,三妹,关于 Java 中的关键字就先说这 48 个吧,这只是一个大概的介绍,后面还会对一些特殊的关键字单独拎出来详细地讲,比如说重要的 static、final 等。”转动了一下僵硬的脖子后,我对三妹说。 “二哥,你辛苦了,足足 48 个啊,容我好好消化一下。”