先说执行顺序:我们在new一个对象时,如果类还没加载,就需要先将类加载到内存,此时就会执行静态代码块,在创建对象时,是先执行代码块,然后执行构造器。所以静态代码块、代码块、构造器的执行顺序是:静态代码块→代码块→构造器。
创新互联是一家专业提供天坛街道企业网站建设,专注与成都网站制作、做网站、H5技术、小程序制作等业务。10年已为天坛街道众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
再说作用:静态代码块是用于初始化类的(在加载类时执行,只执行一次),代码块是用于初始化对象的(在创建对象时执行,每次创建对象时都执行),构造器是用于创建对象的。
是的,在Java中,可以在代码块中创建对象。代码块是由一系列语句组成的片段,可以用于定义类、方法、构造函数等,这些代码块中也可以创建对象。
static{...}是静态块,而只有{...}的是叫做构造块。
静态块在一个程序里面只执行一次;
而构造块是,只要建立一个对象,构造代码块都会执行一次。
静态块优先于主方法的执行,静态块优先于构造快,然后是构造方法的执行,而且只执行一次!
所以输出结果是:
static
block
instance1
block
instance2