Java基础面试:关键字与注释

文摘   2024-11-21 10:58   山东  

Java 中的关键字

什么是关键字

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

关键字分类及说明

分类
关键字
权限修饰符
private, protectedpublic
类、对象和
变量修饰符
abstract, classextendsfinalimplementsinterfacenativenewstaticstrictfpsynchronizedtransientvoidvolatileenum
程序控制
break, continuereturndowhileifelseforinstanceofswitchcasedefaultassert
异常处理
try, catchthrowthrowsfinally
包相关
import, package
基本类型
boolean, bytechardoublefloatintlongshort
变量引用
super, this
保留字
goto, const
直接量
true, falsenull

关键字相关面试题

break、continue 和 return 的区别

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

作用不同:

  • break 和continue 是控制循环语句的;

  • 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(1010);
        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

1. 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 {}

2. finally:通常与try 和catch 一起使用,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驿站】,一个Java编程学习与交流平台。
 最新文章