【JAVA基础】JAVA 53个关键字总结

本文总结了JAVA的53个关键字,包括数据类型、包管理、访问修饰符、流程控制、错误处理、保留字、类相关、线程、断言以及特殊关键字如transient和native等,详细解析了它们的用途和特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 简化版

关键字含义关键词含义
abstract表明类或成员方法具有抽象的属性assert断言,用于程序调试
boolean基本数据类型之一,布尔类型break用于跳出当前块,例如循环的跳出
byte基本数据类型之一,字节类型case用于switch语句中,表示其中的一个分支情况
catch用于异常处理,用来捕获异常char基本数据类型之一,字符类型
class声明一个类const两个保留字之一,表示以后可能会用到
continue循环中使用,表示越过当前循环体的剩余部分,立刻跳到循环体首部default默认,例如,switch语句中,表示一个默认的分支
do用于do-while循环中,后带循环的条件double基本数据类型之一,双精度浮点类型
elseif-else条件语句中,表示条件不成立时的分支enum枚举类型
extends继承,表示一个类继承于另外一个类falseboolean类型的取值,表示错误
final表示不可修改,第二部分细讲finally用于异常处理,声明异常处理流程中一定会执行的语句块
float基本数据类型之一,单精度浮点类型for循环的引导词
goto两个保留字之一,表示以后可能会用到ifif-else条件语句中,表示条件成立时的分支
implements表示一个类实现了给定的接口import表示导入指定的类或包
instanceof用于测试一个对象是否是指定对象的实例对象int基本数据类型之一,整数类型
interface声明一个接口long基本数据类型之一,长整数类型
packagepublic表示访问控制方式:公有模式
private表示访问控制方式:私有模式protected表示访问控制方式:保护模式
native用于修饰方法,表示该方法由其他语言实现new用来创建新实例对象
null空值return表示从成员方法中返回
short基本数据类型之一,短整数类型super表示当前对象的父类型的引用或父类型构造方法
static表明具有静态属性strictfp用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
switch分支语句结构的引导词synchronzed表明一段代码同步执行
this指向当前实例对象的引用throw抛出一个异常
throws声明在当前定义的成员方法中所有需要抛出的异常transient声明不用序列化的成员域
trueboolean类型的取值,表示正确try
void声明当前成员方法没有返回值volatile表明线程在每次使用变量的时候,都会读取变量修改后的最的值
while循环结构

2. 详解版

2.1. 数据类型

对于数据类型,没有什么好说的,包括:

  • 8个基本数据类型:floatdoublebyteshortintlongbooleanchar
  • 其他相关的:nullvoidtruefalse
  • enum

最后一个为枚举类型,作用为:用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型,具体格式举例:

public enum Color {  
  RED, GREEN, BLANK, YELLOW  
} 

看到一篇比较详细的博客,关于枚举类型的7种常见用法:
https://blog.youkuaiyun.com/qq_27093465/article/details/52180865

2.2. 与包相关

  • package:表示包
  • import:导入包

关于导包,有一个小的注意点:如果我们现在要在permutation中导入blog.aa.Hello类:

在这里插入图片描述
导入的语句:
在这里插入图片描述
或者也可以用:
在这里插入图片描述
但不能用下面的语句:因为这个语句的意思是,blog的下一级包中的所有类,不包含blog包中里面的包里的类。这样子做的目的是为了区分:如果blog中有一个hello类,blog.aa包中也有一个hello类,通过这个规则,就可以准确的区别用户导入的具体是什么包
在这里插入图片描述

2.3. 访问修饰符的关键字

  • public,protected,private

2.4. 流程控制(循环、条件)

  • 循环:do,while,for,continue,break
  • 条件:if,else,switch,case,default
  • return

2.5. 错误处理

  • trycatchfinallythrowthrows
  • finally:只用于 try/catch 语句中,表示这段语句最终一定被执行
  • throw 和 throws 的区别:
    • throw 是语句抛出一个异常;throws 是方法抛出一个异常
    • throw语句用在方法体内,表示抛出异常,由方法体内的语句处理,throws语句用在方法声明后面,表示再抛出异常,由调用这个方法的上一级方法中的语句来处理

2.6. 保留字

  • const
  • goto
  • 对于保留字,就是当前没有意义,但以后可能会使用,防止后面修改为关键字后,代码已经使用了这些关键字作为变量,所以先设为保留字,防止被使用

2.7. 类相关

  • classinterfaceabstractextendsnewimplements
  • thissuper
    • this:
      • 引用隐式参数
      • 调用该类其他的构造器
    • super:
      • 调用超类的方法
      • 调用超类的构造器
  • static:主要有4种使用情况:成员变量、成员方法、代码块、内部类
    • 成员变量:static 关键字修饰的成员变量,起到全局变量的作用,在内存中只有一个复制(所有实例都指向同一个内存地址),只要静态变量所在的类被加载,这个静态变量就会被分配空间。注意:Java语言中,不能在方法体中定义static变量。
    • 成员方法:static 方法中不能使用 this 和 super 关键字,不能调用非 static 方法,只能访问所属类的静态成员变量和成员方法。原因:调用这个方法的时候,可能这个类的对象还没有创建,例如:Math.max(a, b);此时,并没有创建Math实例
    • 代码块:静态代码块在类中独立于成员变量和成员函数的代码块,不在任何一个方法体中,JVM加载类时会执行 static 代码块。
    • 内部类:可以不依赖于外部类实例对象而被实例化的类。
  • instanceof:一个二元运算符,它的作用是判断一个引用类型的变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例,即它左边是否是它右边的类的实例
public class Test {
	public static void main(String args[]) {
		String s = "Hello";
		if (s instanceof String) {
			System.out.println("true");
		}
		if (s instanceof Object) {
			System.out.println("true");
		}
	}
}
  • final:用于声明属性、方法和类,分别表示,属性不可变方法不可覆盖类不可被继承,注意,这里属性不可变,对于引用类型,这里指引用不可变,并非是对象不可变。举例:
	public static void main(String[] args) {
        final StringBuilder sb = new StringBuilder("hello");
        sb.append(" java");
        System.out.println(sb.toString());
    }

上面这段代码是可以顺利执行的,final指的是引用的不可变性,即它只能指向初始时指向的那个对象,而不关心指向对象内容的变化。例如上面例子中,指向的对象内容变化,但依旧可以顺利执行。
而当我们修改它的指向时,就会报错:
在这里插入图片描述

2.8. 线程

  • synchronized:表示指定的方法or代码块需要同步执行
  • volatile:对于共享的数据,为了提高效率 ,线程有自己的一份数据,但不一定是罪行的数据,volatile 修饰的对象使用时,必须去读取主存,将数值更新为最新值

2.9. 断言

  • assert
  • 断言提供了一种在代码中进行正确性检查的机制。它的作用是对一个 boolean 表达式进行检查,一个正确运行的程序必须保证这个 boolean 表达式的值为 true,若 boolean 表达式的值为 false,则说明程序已经处于一种不正确的状态下,系统需要提供告警信息并且退出程序。

2.10. transient

  • transient 用于序列化操作中,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。

2.11. native

2.12. strictfp

  • strictfp 是 strict float point 的缩写,指的是精确浮点,用来确保浮点数运算的准确性。strictfp 可以用来修饰类、接口或者方法。
    private static strictfp void count() {
        float f = 0.123f;
        double d = 0.356;
        System.out.println(f + d);
    }
    // 这里,输出的结果为: 0.47900000339746474
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值