静态代码块,静态方法,构造块,有参构造,无参构造区别,优先级

1.静态代码块和构造代码块的区别

  静态代码块:在类中 static{ } 定义 ,在jvm加载时(项目启动时)就已经执行(仅能加载一次),

  构造代码块:在类中 { } 定义,只有当类被实例化时才会被执行

  优先级:静态代码块>main函数>构造代码块>构造方法

2.静态代码块和静态方法区别

  静态代码块:在类中 static{ } 定义  在jvm加载时(项目启动时)就已经执行(仅能加载一次),

  静态方法:  在项目启动时就初始化,当不执行,只用通过类去引用才会去执行

      总结:静态代码块-->初始化-->执行

      静态方法-->初始化-->类引用-->执行
     静态代码块时自动就执行的且只能加载一次,
     静态方法时被动执行的(自动初始化)当类去引用它才会去执行(静态方法不需要实例化就能用)

3 构造块和构造方法(函数)

  构造块:当类实例化时,构造块执行,构造块是给所有构造函数统一的初始化

  构造函数:对应的对象的初始化

  总结:构造块是所有构造方法共同拥有的特征

  

   

     

  优先级:构造块>构造方法

原文地址:https://www.cnblogs.com/CL-King/p/13851252.html