Java 静态块运行时/编译时?

Java 静态块运行时/编译时?,java,static,runtime,compile-time,non-static,Java,Static,Runtime,Compile Time,Non Static,我是Java新手,遇到了静态块。据我所知,在执行代码之前,所有静态语句(静态初始化、静态块等)都一起运行 我的疑问是,这是在运行时还是编译时发生的 在编译期间,代码转换为机器语言,并在运行时执行此机器语言代码。那么,在编译过程中,执行顺序是否发生了变化,所有的静态语句在代码开始时都放在一起,以便在执行其他语句之前执行它们 对不起,如果这看起来是一个非常简单的问题 它们是在运行时加载的 静态意味着:变量属于类,而不是类的实例。因此,每个静态变量只有一个值,如果类有n个实例,则没有n个值。当JVM(

我是Java新手,遇到了静态块。据我所知,在执行代码之前,所有静态语句(静态初始化、静态块等)都一起运行

我的疑问是,这是在运行时还是编译时发生的

在编译期间,代码转换为机器语言,并在运行时执行此机器语言代码。那么,在编译过程中,执行顺序是否发生了变化,所有的静态语句在代码开始时都放在一起,以便在执行其他语句之前执行它们


对不起,如果这看起来是一个非常简单的问题

它们是在运行时加载的


静态意味着:变量属于类,而不是类的实例。因此,每个静态变量只有一个值,如果类有n个实例,则没有n个值。

JVM
(类加载器)加载
StaticClass
(当它第一次在代码中引用时)正在运行静态初始化块


有关详细信息,请参阅

@Raedwald,而不是副本。这个问题是关于块,而不是变量的。@basilev没有实际的区别。