48-keywords.md 6.2 KB
Newer Older
沉默王二's avatar
沉默王二 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
---
title: Java中常用的48个关键字和2个保留字
shortTitle: 48个关键字和2个保留字
category:
  - Java核心
tag:
  - Java语法基础
description: Java程序员进阶之路,小白的零基础Java教程,Java中常用的48个关键字和2个保留字
head:
  - - meta
    - name: keywords
      content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 简介,Java 保留字,Java 关键字
    - name: description
      content: Java程序员进阶之路,小白的零基础Java教程,Java中常用的48个关键字和2个保留字
---

“二哥,就我之前学过的这些 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 等。”转动了一下僵硬的脖子后,我对三妹说。

“除了这些关键字,Java 中还有两个非常特殊的保留字(goto 和 const),它们不能在程序中使用。”

“goto 在 C语言中叫做‘无限跳转’语句,在 Java 中,不再使用 goto 语句,因为无限跳转会破坏程序结构。”

“const 在 C语言中是声明常量的关键字,在 Java 中可以使用 public static final 三个关键字的组合来达到常量的效果。”

“好的二哥,我了解了,您辛苦了。”

----

最近整理了一份牛逼的学习资料,包括但不限于Java基础部分(JVM、Java集合框架、多线程),还囊括了 **数据库、计算机网络、算法与数据结构、设计模式、框架类Spring、Netty、微服务(Dubbo,消息队列) 网关** 等等等等……详情戳:[可以说是2022年全网最全的学习和找工作的PDF资源了](https://tobebetterjavaer.com/pdf/programmer-111.html)

关注二哥的原创公众号 **沉默王二**,回复**111** 即可免费领取。

![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xingbiaogongzhonghao.png)