static-静态方法和静态常量-内存分析
static关键字

静态变量(类变量)、静态方法(类方法):static声明的属性或方法
静态变量/静态方法生命周期和类相同,在整个程序执行期间都有效,它有如下特点:
1、为该类的公用变量,属于类,被该类的所有实例共享,在类载入时被初始化
2、static成员变量只有一份
3、一般用“类名.类变量/方法”来调用
4、在static方法中不可直接访问非static的成员
静态初始化块-继承树的追溯
构造方法用于对象的普通属性初始化
静态初始化块,用于类的初始化操作
在静态初始化块中不能直接访问非static成员
注意事项:
静态初始化块执行顺序:上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到类的静态初始化块为止。构造方法执行顺序和上面顺序一样
this的本质-对象创建过程的4步-隐式参数
this关键字(当前对象本身,对象的地址)
this本质就是“创建好的对象的地址”,就是“当前对象的地址”

this的用法
1、普通方法中,this总是指向调用该方法的对象
2、构造方法中,this总是指向正要初始化的对象

this的其他要点
1、this()调用重载的构造放,避免相同的初始化代码,但只能在构造方法中用,并且必须位于构造方法的第一句
2、this不能用于static方法中
3、this是作为普通方法的“隐式参数”,由系统传入到方法中
变量分类-局部变量-成员变量-静态变量的总结
变量的分类和作用域

变量有三种各类型:局部变量、成员变量(实例变量)和静态变量(类变量)
局部变量、成员变量、静态变量的核心区别
| 类型 | 声明位置 | 从属于 | 生命周期(作用域) |
|---|---|---|---|
| 局部变量 | 方法或语句块内部 | 方法/语句块 | 从声明处开始,到方法或语句块结束 |
| 成员变量(实例变量) | 类内部,方法外部 | 对象 | 对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失; |
| 静态变量(类变量) | 类内部,static修饰 | 类 | 类被加载,静态变量就有效 |