final 和 static 的区别

final 和 static 的区别

修饰变量

  • final 修饰变量表示一旦给值,就不可修改, 需要通过new关键字创建实体类然后调用, 存入常量池不会被GC回收
  • static修饰变量, 可以不通过new关键字创建实体类,直接通过类名调用,存入到类信息中不会被GC回收

修饰方法

  • final修饰方法, 表示该方法不能被重写,但是可以被继承,需要创建实例才能调用
  • static修饰方法,该方法能被重写,也可以被继承,不需要创建实例就可以调用

修改类

  • final修饰类, 表示该类不能有子类,例如String
  • static 修饰类只能是嵌套类,如果修饰类没有static,就不能在类中创建类成员

修饰局部变量

  • final修饰局部变量,一般在局部类中使用,表示该变量不会被GC回收

    * * .**(final int num)
    
  • static不能修饰局部变量

修饰代码块

  • final不能修饰代码块
  • static修饰代码块表示, 静态代码块
原文地址:https://www.cnblogs.com/kikochz/p/13444810.html