重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
static代码块是在类初始化时就被虚拟机执行的,所以最先输出的是d。main方法是静态方法,是在类加载完之后由虚拟机调用的,调用之后才会输出c1。
公司专注于为企业提供成都网站设计、成都网站制作、微信公众号开发、电子商务商城网站建设,微信小程序开发,软件按需开发网站等一站式互联网企业服务。凭借多年丰富的经验,我们会仔细了解各客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联更提供一系列网站制作和网站推广的服务。
静态块只执行一次,初始化块可以执行多次。作用不同 静态初始化块仅能初始化类变量,即static修饰的数据成员。非静态初始化块可以初始化类的实例变量。
1 不管是静态方法还是非静态方法,都需要调用后执行,其执行的次序和在类里声明的次序无关,区别是静态方法是“class.method方式执行,非静态方法是object.method方式执行,即后者需要创建一个对象。
总之一句话,静态代码块内容先执行(父先后子),接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。
java中首先是静态块先执行,静态方法,最后是构造函数。
再说作用:静态代码块是用于初始化类的(在加载类时执行,只执行一次),代码块是用于初始化对象的(在创建对象时执行,每次创建对象时都执行),构造器是用于创建对象的。
静态代码块只会执行一次,一般会用来初始化一些值,并且在所有对象中全局共享。
构造代码块:执行时间比静态代码块晚,比构造函数早,和构造函数一样,只在对象初始化的时候运行。没有名字、参数和返回值。静态代码块:最早执行,类被载入内存时执行,只执行一次。
静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的.静态方法 (1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是静态方法。
java中首先是静态块先执行,静态方法,最后是构造函数。
构造函数:执行时间比构造代码块时间晚,也是在对象初始化的时候运行。没有返回值,构造函数名称和类名一致。构造代码块:执行时间比静态代码块晚,比构造函数早,和构造函数一样,只在对象初始化的时候运行。
静态初始化块:当类第一次加载时执行。非静态初始化块:非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被执行。区别如下:执行次数不同 静态块只执行一次,初始化块可以执行多次。
构造代码块的作用同样是给对象进行初始化。对象一建立就运行构造代码块了,而且优先于构造函数执行。