在学习 Java 的过程中一定会遇到 static 和 final 两个关键字,但很多人总是容易把两个的概念搞混,所以今天我们来介绍一下这两个关键字的区别。
static | final | |
---|---|---|
类 | static 类在被加载时就被会分配内存,其他类不需要实例化就可以直接调用 static 类中的方法,当一个类被重复调用时,可以将此类设计为 static 类 | final 类不能改变,不能被继承,设计类时如果此类不需要有子类或不允许修改,可以将此类设计为 final 类 |
变量 | static 修饰的变量被所有对象所共享,当一个变量需要被多次重复调用时,可以用 static 修饰该变量 | final 修饰的变量一旦初始化就无法改变,注意:final 修饰的变量可以不给初值,当我们需要一个初始化就不变的变量时,就可以用 final 修饰 |
方法 | 同变量,注意:static 方法中不能使用 this 和supe r关键字,只能调用 static 方法 | final 修饰的方法无法改变,任何子类不能重写它,且它的执行效率高,注意:private 关键字会隐式的指向 final;final 不能修饰构造方法 |
字段 | 同变量 | 同变量 |
代码段 | 被static修饰的代码在类被加载就会被调用且只调用一次,当需要优化性能时,可以将一些只需要进行一次的初始化操作都放在static代码块中进行 | 一般不用 |
更多关于 static 可以看看这个:
Java中的static关键字解析 - Matrix海子 - 博客园 (cnblogs.com)https://www.cnblogs.com/dolphin0520/p/3799052.html关于 final:
浅析Java中的final关键字 - Matrix海子 - 博客园 (cnblogs.com)https://www.cnblogs.com/dolphin0520/p/3736238.html记住,多实践才能更加熟练。