static和final知识笔记

static

1)用来声明成员属于类,而不是属于类的对象;

2)static修饰变量,该变量可以被类的所有对象共享;

3)static修饰方法,该方法可以通过类名直接调用,而不用通过对象调用;

4)static修饰代码块,类的静态代码块用来初始化类,给类的静态变量赋值,而类的构造函数用来初始化类的实例;

补充:博主:若不是因为你-->理论小知识

final

1)final修饰类,表示该类不能被继承;

2)final修饰变量,使该变量成为常数,改变final的值会导致一个编译错误;

3)final修饰方法,表示该方法不能被覆盖;被标记为static或private的方法被自动的final;

  --> Java中绑定的所有方法都采用后期绑定技术,除非一个方法已被声明成final。这意

    味着我们通常不必决定是否应进行后期绑定——它是自动发生的。为什么要把一个方

    法声明成final呢?它能防止其他人覆盖那个方法。但也许更

    重要的一点是,它可有效地“关闭”动态绑定,或者告诉编译器不需要进行动态绑定。

    这样一来,编译器就可为final方法调用生成效率更高的代码。

  --《Think in Java》7.2.1

原文地址:https://www.cnblogs.com/fanmzdj/p/3388607.html