1.static 静态的
能够修饰: 属性 方法 代码块
-
static修饰的属性方法代码块,加载到内存的过程:
1> 当遇到类名, 则需要通过jvm中的类加载器, 先将 类这个模板先加载到 方法区中 存储起来.
2> 将静态的属性方法挑拣出来放到 方法区中的静态域(静态方法区) -
1> 静态的属性方法随着类的加载而夹在, 优先于对象存在
2> 所以此时如果想要使用静态的属性和方法 则必须通过 类名调用推荐使用: 类名.静态属性 类名.静态方法 特殊: 本类中的静态的属性和方法 则可以 直接调用 不需要通过类名
3> 当创建了对象以后, 堆中记录着 静态域地址. 所以可以通过对象找到静态域中的属性方法
对象.静态属性和方法
4> 静态域中内容只有一份儿, 是所有对象共享. 所以多个对象的静态属性值 都是一样的, 只要有一个对象修改,
所有的都用修改以后的值
5> 静态方法中是不能使用this和super
静态方法是可以被继承, 但是不能被重写
6> 静态使用场景:
属性: 需要所有的属性值都相同的时候, 可以用static进行修饰
方法: 工具方法, 类中所有的方法都是静态的, 类就是工具类
代码块: 提前给静态的属性和方法进行赋值和调用
7> 静态代码块:
静态代码块只会执行一次
static{
}