**
static关键字
**用static修饰的变量为静态变量,也成为类变量,归类所有,可以通过类名 + . 的方式直接调用,类变量的生命周期和类一样,在整个应用程序执行期间都有效.
强调:
- static 修饰的成员变量和方法,归类所有
- 普通方法归对象所有
- 静态方法之能调用静态成员,不能调用非静态成员.
普通方法既可以调用非静态成员,也能调用静态成员.
static方法
静态方法直接归类所有,所有没有this,因此,静态方法不能访问非静态成员,因为非静态成员都依赖于对象才能被调用.
static变量
- 静态变量在内存中只有一个副本,在类初次加载的时候初始化,且只会初始化一次
- 非静态成员是归对象所有,在创建对象的时候被初始化,存在多个副本,各个对象的副本互不影响
- static可以修饰成员变量但是不能修饰局部变量,这是java语法规定
静态代码块
- 静态代码块只能定义在类里面,不能定义在方法里面.
- 静态代码块中的 变量都是局部变量,只在本代码块中有效
- 静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。