静态变量:
静态变量即类变量,在类中方法之外以statis关键字声明,类的所有对象之间共享。
静态变量在类加载连接阶段的准备阶段在方法区分配内存并设置类变量的初始值(类型的默认值),在首次使用时初始化赋予正确值。
静态变量一般都被声明为常量使用 (public static final),静态常量(即用 static final 修饰的变量)是编译时常量,在编译期即把结果放入常量池。
类会在首次被“主动使用”时执行初始化,为类(静态)变量赋予正确的初始值。在Java代码中,一个正确的初始值是通过类变量初始化语句或者静态初始化块给出的。而我们这里所说的主动使用 包括:
1. 创建类的实例
2. 调用类的静态方法
3. 使用类的非 常量 静态字段
4. 调用Java API中的某些反射方法
5. 初始化某个类的子类
6. 含有main()方法的类启动时
静态代码块:
在类加载的初始化阶段时候就被调用,并且只执行一次
在类加载的初始化阶段执行静态代码块(静态代码块只能访问定义在静态代码块之前的静态变量,定义在静态代码块之后的静态变量,可以赋值,但是不能访问)
静态代码块是先于构造方法执行的特殊代码块
实例代码块:
END.
原文:https://www.cnblogs.com/yangyongjie/p/13932059.html