首先 先说一下什么是代码块:就是定义在类以内 方法以外的{}
初始代码块的具体应用:按照属性定义的位置来给属性初始化,在创建对象时来进行使用
被static修饰的代码块称为静态代 定义在类以内方法以外 在类加载时,按照静态属性定义的先后位置对静态属性进行赋值
类加载:在jvm第一次使用一个类时会通过classpath(类路径)找到相应的.class文件 将信息存储在jvm内存内包括(属性 方法 父类
等等)一个类只类加载一次
第一次使用一个类:
在访问类的静态成员
创建对象时 先进性类加载 再创件对象
子类类加载 (先进行父类类加载)
注意:只声明不会导致类加载
第一次使用子类静态成员时
先进行父类的类加载 然后再进行子类的类加载
第一次创建子类对象时
先进行父类的类加载完成静态属性初始化 再进行子类的类加载完成静态属性初始化 再进行父类的对象创建 执行动态代码块对属性初始化赋值 再执行父类构造方法里的内容在进行子类的动态代码块 进行子类属性初始话赋值 再执行子类构造方法中的内容
static可以用来修饰静态代码块
最新推荐文章于 2024-03-27 21:59:39 发布