static修饰符:代表静态的,可用于修饰 属性、方法、代码块、内部类
一:static修饰属性(静态变量或类变量)
①:static修饰的属性随着类的加载而加载,随着类的消失而消失,所以是周期最长的
②:静态变量被所有该类的对象所共享
③:一旦某个对象更改了属性值,其他对象的该属性值也要改变
④:类变量的存在优于对象
⑤:通过“类名.类变量”
二:类变量与实例变量什么区别
①:在内存中的存在位置不同
②:生命周期不同
三. static 修饰的方法(静态方法或类方法)
①也是随着类的加载而加载
②静态方法的存在优先于对象
③可以通过 "类名.类方法" 的方式调用
④静态方法中不能使用非静态成员,非静态方法中可以使用静态成员
⑤静态方法中不能使用 this 和 super
四:代码块,分为非静态代码块和静态代码块
非静态代码块
①格式: 类中的一对 {}
②每次创建对象时执行
③非静态代码块的执行优先于构造器
④用于为对象进行初始化(通常用于为共性内容进行初始化)
⑤非静态代码块可以有多个,顺序执行
静态代码块:
①格式:static{}
②随着类的加载而加载,并且只加载一次
③静态代码块的执行优先于非静态代码块
④静态代码块中不能使用非静态成员
⑤静态代码块可以有多个,顺序执行
五:为属性赋值的方式
①使用默认值
②直接显示赋值
③构造器赋值
④代码块
顺序:① ②④ ③
注意:②④顺序执行