保留字(2个)
保留字(Reserve Word):即它们在Java现有版本中没有特殊含义,以后版本可能会作为有特殊含义的词,或者该词虽然在Java中没有特殊含义,以后版本也不打算使用,但在其它语言中有特殊含义,不宜在Java中定义为变量名称等,因为容易混淆。
保留字 | 说明 |
---|---|
goto | Java语言规范中确实保留了goto这个关键字,但是实际上在Java编程中并不支持使用goto语句。这是因为goto语句容易导致代码结构混乱、可读性差、难以维护等问题,因此Java语言设计者选择不支持goto语句,而是通过其他结构化的控制语句(如if、for、while等)来实现相同的逻辑 |
const | 在早期的Java版本中,const关键字被保留,意图用于定义常量。然而,在实际编程中,Java语言并没有直接使用const关键字来定义常量,而是使用final关键字来声明常量。final关键字用于修饰变量、方法或类,表示其值不可改变。因此,const这个保留字在Java中也没有实际的作用 |
总的来说,在Java编程中,不要使用goto和const这两个保留字,因为它们不会产生任何实际效果,甚至可能导致编译错误。相反,应该遵循Java语言的规范和最佳实践,使用正确的语法和结构化的控制流程来编写可读性高、易维护的代码。
关键字(51个)
Java关键字(Key Word): 对Java的编译器有特殊的意义,他们用来表示一种数据类型或者表示程序的结构。
用途 | 关键字 | 说明 |
---|---|---|
访问修饰符 | public | 公共访问修饰符是最为宽松的修饰符,被修饰的成员可以被任何其他类访问。可以被同一项目中的任何其他类访问,也可以被不同项目中的类访问 |
访问修饰符 | protected | 受保护的访问修饰符允许成员在同一包内的类和所有子类中进行访问。 在同一包内的类和不同包中的子类都可以访问受保护成员,但不在同一包中的类不能访问受保护成员 |
访问修饰符 | private | 私有访问修饰符最为严格,被private修饰的成员只能在声明它们的类内部进行访问。除了声明它们的类之外,其他任何类都无法访问私有成员 |
类、接口、抽象类 | class | 用于定义类,类是Java程序的基本组成单元,用于封装数据和方法 |
类、接口、抽象类 | interface | 用于定义接口,接口是一种抽象类型,可以包含常量和抽象方法的声明,但不能包含实例变量或普通方法的实现 |
类、接口、抽象类 | abstract | 用于定义抽象类或抽象方法。在类定义中,abstract修饰的类称为抽象类,不能被实例化,通常用于提供一些通用行为或方法的默认实现,但又不希望直接使用这个类的实例。在方法定义中,abstract修饰的方法称为抽象方法,只有声明,没有方法体,具体的实现由子类提供。抽象方法必须在抽象类中定义 |
类、接口、抽象类 | extends | 用于实现继承关系,子类可以继承父类的成员变量和方法 |
类、接口、抽象类 | implements | 用于实现接口,子类通过implements关键字来实现接口,并实现接口中定义的所有抽象方法 |
类、接口、抽象类 | new | 用于创建类的新实例,也就是实例化一个对象 |
类、接口、抽象类 | super | 在子类中调用父类的构造方法、成员变量或方法。通常用于访问父类的成员或调用父类的构造方法 |
类、接口、抽象类 | this | 表示当前对象的引用,可以用来访问当前对象的成员变量或方法,或者在构造方法中调用其他构造方法 |
类、接口、抽象类 | instanceof | 用于判断一个对象是否属于某个类或接口的实例。其语法为 obj instanceof ClassName,返回一个布尔值表示对象是否属于指定类或接口的实例 |
数据类型 | void | 用于表示方法的返回类型,表示该方法不返回任何值 |
数据类型 | byte | 8位带符号的整数数据类型,范围为-128到127。通常用于节省内存,存储小整数值 |
数据类型 | short | 16位带符号的整数数据类型,范围为-32768到32767。通常用于节省内存,存储中等范围的整数值 |
数据类型 | int | 32位带符号的整数数据类型,范围为-2147483648到2147483647。是Java中最常用的整数类型 |
数据类型 | long | 64位带符号的整数数据类型,范围为-9223372036854775808到9223372036854775807。适用于需要存储较大整数值的情况 |
数据类型 | float | 单精度浮点数数据类型,用于表示小数,范围和精度都比较有限。一般用于科学计算和特定的计算需求 |
数据类型 | double | 双精度浮点数数据类型,提供了更高的精度和范围,通常用于一般的小数计算 |
数据类型 | char | 16位无符号Unicode字符数据类型,用于存储单个字符 |
数据类型 | boolean | 布尔值数据类型,只有两个值,即true和false,用于表示逻辑值 |
数据类型 | enum | 一种特殊的数据类型,用于定义枚举类型。枚举类型可以定义一组命名的常量 |
数据类型 | null | 一个特殊的值,用于表示引用类型的变量未指向任何对象 |
数据类型 | true | 布尔类型的真 |
数据类型 | false | 布尔类型的假 |
线程 | synchronized | synchronized关键字用于实现线程之间的同步,确保多个线程在访问共享资源时的安全性 |
线程 | volatile | volatile关键字用于保证可见性和禁止指令重排序,用于修饰变量,确保多个线程在访问该变量时能够看到最新的值 |
异常 | throw | throw关键字用于手动抛出异常对象。当程序出现某种异常情况,无法继续正常执行时,可以使用throw语句抛出一个异常对象,从而中断当前方法的执行,并将异常传递给调用者 |
异常 | throws | throws关键字用于在方法声明中标识该方法可能会抛出的异常类型。它告诉调用者该方法可能抛出的异常类型,从而让调用者进行相应的异常处理 |
异常 | try | try关键字用于定义一个包含可能会抛出异常的代码块,称为“受检代码块”(try block) |
异常 | catch | catch关键字用于捕获和处理try代码块中抛出的异常。如果try代码块中的代码抛出了异常,则会根据异常类型执行对应的catch代码块 |
异常 | finally | finally关键字用于定义一个包含在try-catch结构之后的代码块,无论是否发生异常,finally中的代码块总会被执行 |
返回 | return | return是一个关键字,主要用于从方法中返回值或者结束方法的执行 |
循环、条件 | if | 根据条件执行不同的代码块。如果条件为真,则执行if语句块中的代码,否则执行else语句块中的代码 |
循环、条件 | else | 根据条件执行不同的代码块。如果条件为真,则执行if语句块中的代码,否则执行else语句块中的代码 |
循环、条件 | switch | 根据表达式的值选择不同的执行路径。switch语句根据表达式的值匹配对应的case标签,并执行相应的代码块 |
循环、条件 | case | 根据表达式的值选择不同的执行路径。switch语句根据表达式的值匹配对应的case标签,并执行相应的代码块 |
循环、条件 | break | 终止循环或switch语句的执行,并跳出当前代码块 |
循环、条件 | default | switch语句中,表示没有匹配到任何case时的默认执行路径 |
循环、条件 | continue | 结束当前循环的迭代,并跳到下一次迭代的开头 |
循环、条件 | while | 创建一个循环,只要给定的条件为true,就重复执行循环体中的代码 |
循环、条件 | do | 类似于while循环,但是它会先执行循环体中的代码,然后检查循环条件 |
循环、条件 | for | 创建一个循环,可以在声明循环变量、指定循环条件和循环体中的代码的同时进行 |
包 | package | package 关键字用于声明 Java 包(package),用来组织类和接口,以便更好地管理和组织 Java 代码 |
包 | import | import 关键字用于引入其他包中的类或者整个包,以便在当前文件中使用这些类 |
瞬时的 | transient | 主要用于修饰成员变量,其作用是告诉Java虚拟机在序列化对象时,忽略被修饰的成员变量 |
断言 | assert | 用于在程序中插入断言语句,用于调试和测试。它的作用是在运行时检查一个布尔表达式的值,如果表达式的值为 true,则程序继续执行,如果为 false,则抛出 AssertionError 异常 |
调用底层代码 | native | 标识方法是由本地代码(native code)实现的,也就是说该方法的实现并不是用 Java 语言编写的,而是使用其他语言(通常是C或C++)编写的。使用 native 关键字修饰的方法称为本地方法 |
不可变的 | final | 用于修饰类、方法和变量,表示不可改变的、不可继承的、不可重写的含义 |
静态的 | static | 主要用于定义静态成员和静态方法 |
格式规范 | strictfp | 用于确保浮点运算的结果在不同平台上保持一致性,即"严格浮点" |