1.init 和 clinit方法执行时机不同。init是对象构造器方法,在程序执行 new 一个对象调用该对象类的 constructor方法时才会执行init方法;而clinit是类构造器方法,在JVM进行类加载--验证--解析--初始化,中初始化阶段JVM会调用clinit方法。
2.init 和 clinit方法执行目的不同。init是instance实例构造器,对非静态变量解析初始化。而clinit是class类构造器对静态变量,静态代码块进行初始化。
1.init 和 clinit方法执行时机不同。init是对象构造器方法,在程序执行 new 一个对象调用该对象类的 constructor方法时才会执行init方法;而clinit是类构造器方法,在JVM进行类加载--验证--解析--初始化,中初始化阶段JVM会调用clinit方法。
2.init 和 clinit方法执行目的不同。init是instance实例构造器,对非静态变量解析初始化。而clinit是class类构造器对静态变量,静态代码块进行初始化。
转载于:https://my.oschina.net/134596/blog/1636184