final 和 static 的区别
修饰变量
- final 修饰变量表示一旦给值,就不可修改, 需要通过
new
关键字创建实体类然后调用, 存入常量池不会被GC
回收 - static修饰变量, 可以不通过
new
关键字创建实体类,直接通过类名调用,存入到类信息中不会被GC
回收
修饰方法
- final修饰方法, 表示该方法不能被重写,但是可以被继承,需要创建实例才能调用
- static修饰方法,该方法能被重写,也可以被继承,不需要创建实例就可以调用
修改类
- final修饰类, 表示该类不能有子类,例如
String
- static 修饰类只能是嵌套类,如果修饰类没有static,就不能在类中创建类成员
修饰局部变量
-
final修饰局部变量,一般在局部类中使用,表示该变量不会被
GC
回收* * .**(final int num)
-
static不能修饰局部变量
修饰代码块
- final不能修饰代码块
- static修饰代码块表示, 静态代码块