🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## [类初始化和加载](https://lingcoder.gitee.io/onjava8/#/book/08-Reuse?id=%e7%b1%bb%e5%88%9d%e5%a7%8b%e5%8c%96%e5%92%8c%e5%8a%a0%e8%bd%bd) 在许多传统语言中,程序在启动时一次性全部加载。接着初始化,然后程序开始运行。必须仔细控制这些语言的初始化过程,以确保**statics**初始化的顺序不会造成麻烦。在 C++ 中,如果一个**static**期望使用另一个**static**,而另一个**static**还没有初始化,就会出现问题。 Java 中不存在这样的问题,因为它采用了一种不同的方式加载。因为 Java 中万物皆对象,所以加载活动就容易得多。记住每个类的编译代码都存在于它自己独立的文件中。该文件只有在使用程序代码时才会被加载。一般可以说“类的代码在首次使用时加载“。这通常是指创建类的第一个对象,或者是访问了类的**static**属性或方法。构造器也是一个**static**方法尽管它的**static**关键字是隐式的。因此,准确地说,一个类当它任意一个**static**成员被访问时,就会被加载。 首次使用时就是**static**初始化发生时。所有的**static**对象和**static**代码块在加载时按照文本的顺序(在类中定义的顺序)依次初始化。**static**变量只被初始化一次。