2021年7月26日星期一

类的加载过程中初始化方法<clinit>

初始化阶段是执行类构造器<clinit>()方法的过程。

  • <clinit>()方法是由编译器自动收集类中的所有类变量的赋值动作和静态语句块(static{})中的语句合并产生的,编译器手机的顺序是由语句在原文件中出现的顺序所决定的,静态语句块中只能访问到定义在静态语句块之前的变量,定义在他之后的变量,在前面的静态语句块中可以赋值,但是不能访问,如下代码:
public class Test{		static {				i = 0;//可以通过				System.out.print(i);//"非法前向引用"		} 		static int i = 1;}

没有评论:

发表评论