Static静态修饰符

Static静态修饰符

分类

静态变量也叫类变量,是跟类关联的,是在类加载时初始化
静态代码块,加载时执行一次的代码段
实例代码块 在创建对象的时候会执行一次

介绍

Static声明的代码将在类加载时执行,静态禁止访问非静态的代码
因为非静态的代码还没有加载出来,同时静态属性先加载,所以静态代码块可以使用静态属性
因为Static声明的代码会比非Static先执行,所以可以不new对象就直接调用
总之Static除了先执行,还可以不实例化对象就调用其中的静态方法和属性

静态的使用注意事项:

  1. 静态方法只能访问静态成员(包括成员变量和成员方法)
    非静态方法可以访问静态也可以访问静态
  2. 静态方法中不可以定义this,super关键字。
    因为静态优先于对象存在,所以静态方法中不可以出现this,super关键字

静态的利弊

利:对对象的共享(静态)数据进行单独空间的存储,节省空间,没有必要每一个对象中都存储一份可以直接被类名所调用
补充:由于静态变量单独的存储,修改变量其他地方也可以访问修改后的数据

弊:生命周期过长,访问出现局限性(只能访问静态)

在代码中的运用:

静态方法块

静态只在加载时执行,只会执行一次,不会再次执行
简单来说:就是在执行时new静态方法块所在的类,第一次时执行-第二次时不执行
一般使用在加载驱动或者连接数据库

static{
    System.out.prontln("123")
}