学习笔记1——变量未申明也能赋值吗?

之前看了大神们发的java优化151的文章,其中有一段不是很明白
后来在看了大家讨论的时候自己慢慢消化了
代码
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。

你可能感兴趣的:(学习笔记)