最大特点:
1.被所有的对象实例共享
2.类被加载时候生成
类变量内存布局:
说法不一,根据jdk版本有关 堆里另一个class类 方法区里静态域
访问类变量:
类名.类变量名
对象名.类名变量(类.加载了就可以使用类变量)
类加载的情况:
1.创建对象实例
2.创建子类实例对象(父类先被加载,子类后加载)
3.使用类的静态成员时候
类方法:
不希望创建实例,直接使用的方法
访问特点:
静态访问静态,非静态访问非静态和静态
main方法:
1.main可以直接访问本类静态变量
2.main需要创建实例对象后访问非静态变量
代码块:
1.普通代码块/静态代码块
2.构造器有公共部分时,使用代码块,提高复用率
3.普通代码创建对象时,调用代码块;静态代码块,类加载时调用
4.代码块的优先级大于构造器
创建对象时执行顺序:
1.静态代码块和静态属性初始化
2.普通代码块和普通属性初始化
3.调用构造器
super()
普通代码块
构造器
final使用注意事项:
1.final修饰的属性又叫常量
2.定义时候必须赋值,并且不能再修改
3.final方法不可以重写,可以被继承;final类不能被继承,可以实例化
4.final与static搭配使用,可以让类不被加载,编译器底层优化