JVM init和cinit的理解
JVM的类加载机制中,准备阶段和初始化阶段尤为重要,在程序设计中有时候起到至关重要的作用。因此今天来根据一个例子来讲解JVM中<init>和<cinit>的过程。 吊炸天的Java题目,请问输出结果是什么? public class JavaTest { public static void main ( String [] args ){ f1 (); } static JavaTest javaTest = new JavaTest (); static { System . out . println ( "1" ); } { System . out . println ( "2" ); } JavaTest (){ System . out . println ( "3" ); System . out . println ( "a=" + a + ", b=" + b ); } public static void f1 (){ System . out . println ( "4" ); } int a = 100 ; static int b = 200 ; } 先给出正确答案: 2 3 a = 100 , b = 0 1 4 init和clinit区别 ①init和clinit方法执行时机不同 ②init和clinit方法执行目的不同