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. Angular 18+ 高级教程 – Library

    前言 当你需要管理超过一个项目时,你就需要知道怎么使用 Angular Library. 你可以把多个项目共享的组件放到这个 Library 了,就像 Angular Material 那样. 参考 ...

  2. C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  3. JAVAEE——tomcat安装

    一.下载 1.网址:Tomcat官网 选择版本:点击左边Download下的which version,根据Supported Java Versions来选择合适的Tomcat版本 下载软件:点击左 ...

  4. pimp技法浅析--实现轻量级的面向接口编程

    pimp.hpp: #ifndef pimp_hpp #define pimp_hpp class CMyComponent{ public: CMyComponent(); ~CMyComponen ...

  5. 我是如何开发一款支持IDEA、PyCharm、Android Sutdio 等JB全家桶的摸鱼插件的

    公众号「古时的风筝」,专注于后端技术,尤其是 Java 及周边生态. 个人博客:www.moonkite.cn 大家好,我是风筝 前些天做了一款支持 Jetbrains 大部分 IDE 的摸鱼插件- ...

  6. C++的并发编程历史

    多线程环境 并非所有的语言都提供了多线程的环境.即便是C++语言,直到C++11标准之前,也是没有多线程支持的. 在这种情况下,Linux/Unix平台下的开发者通常会使用POSIX Threads, ...

  7. 9月《中国数据库行业分析报告》已发布,47页干货带你详览 MySQL 崛起之路!

    为了帮助大家及时了解中国数据库行业发展现状.梳理当前数据库市场环境和产品生态等情况,从2022年4月起,墨天轮社区行业分析研究团队出品将持续每月为大家推出最新<中国数据库行业分析报告>,持 ...

  8. vue3 + vite 分析报告 report == rollup-plugin-visualizer

    安装插件 npm i rollup-plugin-visualizer -D 配置vite.config.js 文件 [加入插件] import { defineConfig } from 'vite ...

  9. typeof typeof 'texs'是什么类型

    typeof '12' 返回  'string' 是字符串类型  :

  10. 【Azure Cloud Service】使用RESTAPI更新Cloud Service(Extended Support) 中所配置的证书

    问题描述 当根据Cloud Service (Extended Support) 文档更新证书 ( https://docs.azure.cn/zh-cn/cloud-services-extende ...