静态代码块,静态方法,构造块,有参构造,无参构造区别,优先级
1.静态代码块和构造代码块的区别
静态代码块:在类中 static{ } 定义 ,在jvm加载时(项目启动时)就已经执行(仅能加载一次), 构造代码块:在类中 { } 定义,只有当类被实例化时才会被执行 优先级:静态代码块>main函数>构造代码块>构造方法
2.静态代码块和静态方法区别
静态代码块:在类中 static{ } 定义 在jvm加载时(项目启动时)就已经执行(仅能加载一次), 静态方法: 在项目启动时就初始化,当不执行,只用通过类去引用才会去执行 总结:静态代码块-->初始化-->执行 静态方法-->初始化-->类引用-->执行 静态代码块时自动就执行的且只能加载一次, 静态方法时被动执行的(自动初始化)当类去引用它才会去执行(静态方法不需要实例化就能用)
3 构造块和构造方法(函数)
构造块:当类实例化时,构造块执行,构造块是给所有构造函数统一的初始化
构造函数:对应的对象的初始化
总结:构造块是所有构造方法共同拥有的特征
优先级:构造块>构造方法