Java基础面试:关键字与注释
Java 中的关键字
什么是关键字
Java
关键字是 Java
语言中预先定义好的、具有特殊含义的标识符。这些标识符在程序中有固定的用途,不能用作变量名、方法名或类名。Java
中共有 53 个特殊标识符,其中包括 48 个关键字,2 个保留字,外加 3 个特殊直接量。
关键字分类及说明
分类 | 关键字 |
---|---|
权限修饰符 | private , protected , public |
类、对象和 变量修饰符 |
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
等程序控制语句来实现提前终止循环的功能。
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(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
final
:final
是一个修饰符,用来修饰类、方法和变量。它的作用是限制某些对象或行为的改变。修饰变量时, 表示该变量为常量,一旦被赋值就不能再修改;
// 如果重新赋值 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
:通常与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驿站】 公众号
👇👇👇