static 和 final 总结

参考:
作者博客:http://www.cnblogs.com/dolphin0520
总结得超好!!!

浅析Java中的final关键字

http://www.importnew.com/18586.html

Java中的static关键字解析

http://www.cnblogs.com/dolphin0520/p/3799052.html

static 关键字

static 修饰的变量或方法时对象的对于它的各个实例的共有财产,
而且不用实例化就可以直接引用。
可以在实例方法可以使用静态方法,静态方法或者 static块 中不能引用实例变量或者方法(因为静态方法时共有的,如果特定实例的东西进去了,这个特性就不能保证了,矛盾了;static 块,则是因为它只在类加载的时候执行一次,这种特性也可用于在创建对象的过程中优化策略)。

final 关键字

final 类不可修改,不可继承扩展(此时该类的方法默认为 final 类型)

在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类

final 方法

因此,如果只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。

注:类的private方法会隐式地被指定为final方法。

 final 变量

对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

final 变量的编译时特性

当final变量是基本数据类型以及String类型时,如果在编译期间能知道它的确切值,则编译器会把它当做编译期常量使用。

你可能感兴趣的:(static,final)