final关键字
含义
final
是一个修饰符关键字,可以应用于类、方法和变量。当类、方法或变量被声明为 final
时,它们将变为不可修改的、最终的。具体含义如下:
- 当类被声明为
final
时,表示该类是最终的,不能被继承。 - 当方法被声明为
final
时,表示该方法不能被子类重写。 - 当变量被声明为
final
时,表示该变量的值只能被赋值一次,并且不能再进行修改。 - final还有防止指令重排序的作用。
应用场景
- 对于类:当一个类不希望被继承时,可以将其声明为
final
。 - 对于方法:当一个方法不希望被子类修改或重写时,可以将其声明为
final
。 - 对于变量:当一个变量的值在初始化后不应该再被修改时,可以将其声明为
final
。例如,常量的定义通常会使用final
关键字。
static关键字
含义
static
是一个修饰符关键字,可以应用于类、方法和变量。它具有以下含义:
-
变量 static修饰的变量属于类变量,被所有对象共享
-
方法 static修饰的方法是静态方法,静态方法不能直接调用非静态的方法,非静态方法可以调用静态方法,this关键字不能在static中使用
-
代码块 静态代码块要比构造方法更早执行,主要作用就是初始化静态数据
-
static修饰的代码块只能放在外边,不能放到方法里边,没有的static修饰的代码块可以放到方法里
应用场景
- 对于类变量:当多个类实例需要共享相同的变量时,可以将变量声明为
static
。 - 对于静态方法:当一个方法属于整个类,不依赖于特定实例,并且可以在不创建类实例的情况下调用时,可以将方法声明为
static
。 - 对于静态块:静态块指的是使用
static
关键字定义的代码块,在类加载时执行。