Java 中的关键字

什么是关键字

Java 关键字是 Java 语言中预先定义好的、具有特殊含义的标识符。这些标识符在程序中有固定的用途,不能用作变量名、方法名或类名。Java 中共有 53 个特殊标识符,其中包括 48 个关键字,2 个保留字,外加 3 个特殊直接量。

关键字分类及说明

分类关键字
权限修饰符private, protected, public
类、对象和<br/>变量修饰符abstract, class, extends, final, implements, interface, native, new, static, strictfp, synchronized, transient, void, volatile, enum
程序控制break, continue, return, do, while, if, else, for, instanceof, switch, case, default, assert
异常处理try, catch, throw, throws, finally
包相关import, package
基本类型boolean, byte, char, double, float, int, long, short
变量引用super, this
保留字goto, const
直接量true, false, null

关键字相关面试题

break、continue 和 return 的区别

在编程语言的循环结构里,通常情况下,当预设的循环条件不再成立或已达到指定的循环次数时,循环将按预期自然停止。然而,在实际开发过程中,我们可能会遇到需要根据特定情况即时退出循环的需求,这时就需要 break, continue, return 等程序控制语句来实现提前终止循环的功能。

作用不同:

  • breakcontinue 是控制循环语句的;
  • return 是用于结束方法的。

用法不同:

  • break:用于立即退出当前循环或 switch 语句;
  • continue:用于跳过当前循环的剩余部分,继续执行下一次循环;
  • return:如果方法有返回值类型,从方法中返回一个特定值作为此方法的返回值;如果方法没有返回值类型,使用 return 结束方法的执行。

用法示例

public class Keyword {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            if (i == 2) {
                continue;  // 跳过i=2的情况
            }
            if (i == 3) {
                break;  // 当i=3时,跳出循环
            }
            System.out.println("i = " + i);
        }

        int result = divide(10, 10);
        System.out.println("result = " + result);
        divide(0);
        divide(1);
    }

    public static int divide(int a, int b) {
        return a / b;
    }

    public static void divide(int b) {
        if (b == 0) {
            System.out.println("除数为0,提前return。");
            return;
        }
        System.out.println("方法正常执行啦!");
    }
}

如何跳出多层嵌套循环

如上所述,使用 break 可以立即退出当前循环,那么当多层循环嵌套时,如何退出外层循环呢?在 Java 中,可以为循环结构语句添加标签,使用标签和 break 语句结合来跳出多重嵌套循环。假设我们有一个双重嵌套的 for 循环,我们需要在满足某个条件时跳出所有循环。使用示例如下:

public class NestedLoop {
    public static void main(String[] args) {
        outer: // 为外层循环添加标签
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                if (i * j > 50) {
                    System.out.println("Breaking out of nested loops at i=" + i + ", j=" + j);
                    break outer; // 跳出外层循环
                }
                System.out.println("i=" + i + ", j=" + j);
            }
        }
        System.out.println("Loops completed");
    }
}

final 与 finally

  • finalfinal 是一个修饰符,用来修饰类、方法和变量。它的作用是限制某些对象或行为的改变。

    • 修饰变量时,表示该变量为常量,一旦被赋值就不能再修改;

      // 如果重新赋值 IDE 会提示 Cannot assign a value to final variable 'MAX_VALUE'
      public static final int MAX_VALUE = 100;
    • 修饰方法时,表示该方法不能被子类重写;

      public class FinalClass {
      public final void finalMethod() {}
      }
      class SubClass extends FinalClass {
      // IDE 提示不能重写final方法 'finalMethod()' cannot override 'finalMethod()'; overridden method is final
      public void finalMethod() {}
      }
    • 修饰类时,表示该类不能被继承。

      public final class FinalClass {}
      // Cannot inherit from final class
      class SubClass extends FinalClass {}
  • finally:通常与 trycatch 一起使用,finally 块中的代码无论是否发生异常都会被执行。这在需要确保某些资源(例如文件、网络连接等)被正确释放时非常有用。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
    public static void main(String[] args) {
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader("hello.txt"));
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            // 处理可能出现的IO异常
            e.printStackTrace();
        } finally {
            // 在finally块中关闭资源,避免内存泄漏或其它问题
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {

                }
            }
        }
    }
}

Java 中的注释

好的代码应该尽量自解释,意味着代码本身应该具有足够的清晰度和结构(比如规范的命名),使得其意图和功能能够通过代码本身被理解,而不需要额外的注释或文档来解释,这是编程中的一个理想状态。实际当中,适当的注释能够增强代码的可读性和可维护性。在使用注释时,我们应该注意适度原则:不要过度注释,而是尽量通过规范和美化代码来减少不必要的注释。同时,充分利用文档注释来生成详细的开发文档,提高代码的可读性和可维护性。

注释的三种形式

  • 单行注释:简洁明了的解释,以 // 开头,直到行尾。
  • 多行注释:深入的解释与说明,以 /* 开头,以 */ 结尾。
  • 文档注释:构建开发文档的关键,以 /** 开头,以 */ 结尾,用于生成 API 文档。

好的注释应该清晰、简洁且有意义。它们应该解释代码的目的、逻辑和实现细节,而不是重复代码本身的内容。


【Java驿站】持续给大家更新,扫描下方👇👇👇二维码,关注【Java驿站】公众号


Johnny
0 声望0 粉丝