final
- final修饰类:该类不可继承
- final修饰方法:该方法不能被子类覆盖(但它不能修饰构造函数) - -
- final修饰字段属性:属性值第一次初始化后不能被修改 使用final可以提高程序执行的效率,将一个方法设成final后编译器就可以把对那个方法的所有调用都置入嵌入调用里。
static
- static修饰成员函数则该函数不能使用this对象
- static不能修饰构造函数、函数参数、局部成员变量
- static修饰成员字段则当类被虚拟机加载时按照声明先后顺序对static成员字段进行初始化。
- static修饰语句块:当类被虚拟机加载时按照声明先后顺序初始化static成员字段和static语句块 static所修饰的方法和字段只属于类,所有对象共享,java不能直接定义全局变量,是通过static来实现的。
常量补充
- java中没有const,不能直接定义常量,是通过static final组合来实现的。 C#中readonly、const readonly、const是c#中的两种常量 readonly:为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,也称为只读变量。 const:为编译时常量,程序编译时将对常量值进行解析,并将所有常量引用替换为相应值。