- static 用于修饰类中的成员,表示该成员属于类,而不属于单个对象实例。被 static 修饰的成员将在类初次加载时初始化,对象创建之前就存在,是类级别的。
- final 用于修饰类、方法和变量,目的是防止修改。
- 对类的使用表示该类不能被继承。
- 对方法的使用表示该方法不能被子类重写。
- 对变量的使用表示该变量只能被赋值一次,是不可变的
3.访问方式不同:
- static 成员可以通过类名直接访问,不需要创建对象实例。
- final 变量必须通过对象实例访问,需要先创建对象。
4.在内存中的存在:
- static 成员只有一份,存在于类的静态存储区域,所有对象实例都共享。
- final 变量每一个对象都会保存一份。
5.修饰范围不同:
- static 只能修饰成员变量和成员方法。
- final 可以修饰类、方法、变量。
6.是否常量:
- static 变量不一定是常量,可以修改。
- final 变量如果是基本数据类型则不能修改,是常量。