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 等程序控制语句来实现提前终止循环的功能。

作用不同:

  • 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驿站】公众号

Java基础面试:关键字与注释的更多相关文章

  1. Java基础面试系列(一)

    Java基础面试总结(一) 1. 面向对象和面向过程的区别 面向过程 面向对象 性能 高于面向对象 类加载的时候需要实例化,比较消耗资源 三易(易维护,易复用,易扩展) 不如面向对象 具有封装,继承, ...

  2. java标识符,关键字,注释及生成Doc文档

    # java语法基础 ## 标识符,关键字与注释 ### 标识符 1.类名,变量名,方法名都称为标识符. 2.命名规则:(1):所有的标识符都应该以字母(AZ,或者az)美元符($)或者下划线(_)开 ...

  3. Java基础-synchronized关键字的用法(转载)

    synchronized--同步 顾名思义是用于同步互斥的作用的. 这里精简的记一下它的使用方法以及意义: 当synchronized修饰 this或者非静态方法或者是一个实例的时候,所同步的锁是加在 ...

  4. JAVA基础面试汇总

    一.基础知识:1.JVM.JRE和JDK的区别:    JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性.                  java ...

  5. Java基础——面试、笔试

    网址来源: http://www.nowcoder.com/discuss/5949?type=0&order=0&pos=4&page=2 参考资料:(java方面的一些面试 ...

  6. Java基础之关键字,标识符,变量

    Java基础 首先,来看一下Java基础知识图解,以下便是在java学习中我们需要学习设计到的一些知识(当然不是很完全). 这些都是接下来在以后的学习中我们会学到的一些知识. 1 关键字 首次先来学习 ...

  7. Java基础面试知识点总结

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  8. java基础---->final关键字的使用

    这里介绍一些java基础关于final的使用,文字说明部分摘自java语言规范.心甘情愿这四个字,透着一股卑微,但也有藏不住的勇敢. Final关键字的说明 一.关于final变量规范说明 .A fi ...

  9. java 基础 01 变量和注释、数据类型

    1,变量和注释 比如:姓名:xiaoming 年龄:18 1.1变量的基本概念 当需要在程序中记录单个数据内容时,则需要声明一个变量来处理,而变量的本质就是内存中申请一块存储单元用于存储数据内容,由于 ...

  10. Java基础 面试总结(一)

    一.java基础篇-概念 1.简述你所知道的Linux: Linux起源于1991年,1995年流行起来的免费操作系统,目前, Linux是主流的服务器操作系统, 广泛应用于互联网.云计算.智能手机( ...

随机推荐

  1. EF Core – Unit of Work, DbContext, Transaction 概念解释

    前言 踩了一个坑, 下面是 2 个 scope 的调用, 第 1 和 3 是一个 Audit log filter action, 第 2 个是 controller. // open tran // ...

  2. Figma 学习笔记 – Border

    Figma 画 Border 其实还挺难的 4 边框 可以用 build-in 的 Stroke 实现 注: border 是在内部的, 和 HTML 一直 Border Top, Right, Bo ...

  3. 开源项目dotnet/eshop 和 dotnet/eshopsupport

    dotnet/eshop[1] 和 dotnet/eshopsupport[2] 是两个与 .NET 相关的开源项目,分别用于展示电子商务应用的不同方面. dotnet/eshop: 功能与架构:do ...

  4. QT6框架WebEngine模块之WebEngine总体介绍以及WebEngine能做什么?

    QT6框架WebEngine模块之WebEngine总体介绍以及WebEngine能做什么? 简介 本文简略介绍QT6框架WebEngine模块之WebEngine总体介绍以及WebEngine能做什 ...

  5. AD域下,普通用户环境下安装软件需要管理员权限的解决办法

    原理:将AD域普通用户添加到管理组中,使其拥有管理员权限 做法: 1.切换到AD域管理员账户: 2.计算机 -> 管理 -> 用户和组 -> 组 -> Administrato ...

  6. Linux内核中cpu_capacity是什么?

    cpu_capacity 在Linux内核中,cpu_capacity 是用于表示每个CPU的处理能力的一个参数,通常用于调度器的负载均衡.它表明不同的CPU核心在计算资源分配中的相对性能,尤其在异构 ...

  7. efcode相关操作

    1. 下载 tool dotnet tool install -g dotnet-ef 2. 第一次迁移日志 dotnet ef migrations add init1 3. 更新数据库 datne ...

  8. js实现控制音乐播放

    js实现控制音乐播放 用js实现控制音乐播放其实很简单,但是第一次去做可能会遇到一点点小问题. 比如说我自己,第一次想实现一个播放器效果,然后在网上搜寻半天照着自己的理解写下如下代码:  <!D ...

  9. Solon 3.0 新特性:HttpUtils 了解一下

    Solon 3.0 引入一个叫 HttpUtils 小插件,这是一个简单的同步 HTTP 客户端,基于 URLConnection 适配(也支持切换为 OkHttp 适配).使得编写 HTTP 客户端 ...

  10. 为Markdown/HTML文档生成一个简易目录

    现在阅览文章的网页往往都带有一个目录,方便点击跳转.目录一般都是根据文档中的标题级别直接生成的. 现在我们也来模仿一个简单的,无非就是把<h1><h2>...的序列转化成树嘛 ...