分类
静态变量也叫类变量,是跟类关联的,是在类加载时初始化
静态代码块,加载时执行一次的代码段
实例代码块 在创建对象的时候会执行一次
介绍
Static
声明的代码将在类加载时执行,静态禁止访问非静态的代码
因为非静态的代码还没有加载出来,同时静态属性先加载,所以静态代码块可以使用静态属性
因为Static
声明的代码会比非Static
先执行,所以可以不new
对象就直接调用
总之Static
除了先执行,还可以不实例化对象就调用其中的静态方法和属性
静态的使用注意事项:
- 静态方法只能访问静态成员(包括成员变量和成员方法)
非静态方法可以访问静态也可以访问静态 - 静态方法中不可以定义this,super关键字。
因为静态优先于对象存在,所以静态方法中不可以出现this,super关键字
静态的利弊
利:对对象的共享(静态)数据进行单独空间的存储,节省空间,没有必要每一个对象中都存储一份可以直接被类名所调用
补充:由于静态变量单独的存储,修改变量其他地方也可以访问修改后的数据
弊:生命周期过长,访问出现局限性(只能访问静态)
在代码中的运用:
静态方法块
静态只在加载时执行,只会执行一次,不会再次执行
简单来说:就是在执行时new
静态方法块所在的类,第一次时执行-第二次时不执行
一般使用在加载驱动或者连接数据库
static{
System.out.prontln("123")
}