一、静态变量修饰属性
static 修饰的为该类
的公用变量,属于类,被该类所有的对象所共享,在类被载入时被显示初始化。
static关键字的内存图
也正是由于他是属于类的,所以他可以直接用类名调用
总结:
1.静态的变量不属于具体的对象,是属于类,被所有的对象所共享
2.静态的变量在使用的时候可以直接用,类名.属性名
3.静态变量存在方法区(元空间)中
二、静态变量修饰方法
静态方法只能使用静态的成员变量
静态方法中可以直接调用静态方法
非静态的方法可以任意调用
静态方法里不能用this
三、静态代码块
局部代码块
:在方法中定义
可以有多个 依次执行
定义的变量作用范围是当前局部代码块
成员代码块
在类中定义 可以有多个 依次执行
每次创建对象的时候都先执行代码块
然后再执行构造函数
static代码块
static{
}
在类中 也可以设置多个 且依次执行
但是只在加载类的时候执行一次
给静态变量赋初始值,实际开发中使用比较多,一般用于执行一些全局性的初始化操作,比如创建工厂、加载数据库初始信息