之前看了大神们发的java优化151的文章,其中有一段不是很明白
后来在看了大家讨论的时候自己慢慢消化了
代码
输出的结果为i为10,为什么静态代码块没有申明也能赋值呢,因为首先由于i是静态变量,在初始化时候就被加载进来了,所以可以赋值。当程序执行时候首先执行静态代码块,再执行赋值语句等,之后执行主函数,最后输出I为10。
后来在看了大家讨论的时候自己慢慢消化了
代码
public class Test {
static {
i = 100;
System.out.println("================================"+i);
}
public static int i=10;
public static void main(String[] args) {
System.out.println("此时 i 的输出为" + i);
}
}
输出的结果为i为10,为什么静态代码块没有申明也能赋值呢,因为首先由于i是静态变量,在初始化时候就被加载进来了,所以可以赋值。当程序执行时候首先执行静态代码块,再执行赋值语句等,之后执行主函数,最后输出I为10。