public class Parent {
//第零步,首先定义iz,iy两个变量,并初始化为0(因为是int类型,如果是对象则为null)
private static int iz = getNext(2); //第一步,因为有方法调用,所以转到方法,即第二步
private static int iy=99; //第三步
//静态初始化块
static //第四步
{
System.out.println("parent的静态初始化块");
System.out.println(iz); //这里因为第二步,iz=3
System.out.println(iy); //这里因为第三步,iy=4
}
public static int getNext(int base) //第二步,方法调用
{
System.out.println("parent的static int getNext(int base)被调用");
System.out.println(iy); //iy初始化为0
System.out.println(iz); //iz初始化也为0,这里就说明先走变量定义,对于int类型,初始化为0
return ++base;
}
public static void t() //这里没有执行,这就说明了,方法不调用,就不会被加载,所以如果第一步不调用getNext方法,第二步就不会执行,就会直接到第三步
{
System.out.println("parent的static void t被调用");
System.out.println(iz);
}
}
分享到:
相关推荐
statilocal java 静态变量和静态块加载顺序,静态变量和同名静态变量块加载的顺序。
Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着紧密的关系。下面将对这四个概念进行详细的介绍。 一、静态变量...
这强调了静态变量初始化时可以执行的方法调用,而这些方法调用是在任何对象创建之前进行的。 此外,注意到 `main` 方法中 `t2.f2(1)` 和 `c1.f3(1)` 的调用。由于 `t2` 和 `c1` 是静态变量,我们可以直接通过它们...
在本文中,我们讨论了 Java 类加载器中的静态变量初始化机制,了解了静态变量的初始化顺序和类加载器的生命周期。通过对静态变量初始化机制的理解,我们可以更好地掌握 Java 语言的基础知识,并更好地应用 Java 语言...
在Java编程语言中,"静态"(static)关键字是一个非常重要的概念,它具有多种用途,包括定义静态变量、静态方法、静态初始化块以及静态类。理解这些概念对于编写高效的Java代码至关重要。 首先,我们来解释静态变量...
Java 代码块与静态代码块加载顺序详解 Java 代码块与静态代码块加载顺序是 Java 语言中一个重要的概念,理解这两个概念对于编写高效、可靠的 Java 代码至关重要。本文将详细介绍 Java 代码块与静态代码块加载顺序的...
这是因为静态块是在类加载时执行的,而类的加载顺序是按照继承层次自上而下进行的,所以父类的静态块总是先于子类的静态块执行。 2. **构造函数的执行**:接下来,父类的构造函数会被调用,然后才是子类的构造函数...
下面我们将深入探讨静态方法、静态变量以及静态类等相关的知识点。 1. 静态方法 静态方法是与类关联,而不是与类的实例关联的方法。这意味着我们不需要创建类的实例就可以调用静态方法。它们在内存中只有一份,且在...
例如,通过设置特定的`MODULES`或`EXTRA_CFLAGS`变量,可以控制某些模块的构建方式,进而影响其加载顺序。 #### 编译器控制 虽然编译器本身并不直接影响模块的加载顺序,但它可以通过生成特定的代码结构或使用特定...
静态类主要用于存放静态方法和静态变量,它们在程序运行前就已经被加载到内存中,且在整个程序生命周期内只存在一份。在上面的例子中,`Logger` 类就是一个静态类,因为它包含了静态方法如 `InitializeLogging()`、`...
了解Java中继承关系的加载顺序对于理解和优化程序性能至关重要。以下是对这个主题的详细阐述: 1. 类加载机制 Java的类加载过程分为三个主要阶段:加载、验证、准备、解析和初始化。当一个类被首次引用时(例如...
静态块,也被称为静态初始化器,是在类加载时自动执行的一段代码,用于初始化类的静态变量或执行一次性的设置工作。静态块可以包含任意的Java语句,并且会在类的任何实例被创建之前执行。与静态方法不同,静态块不是...
Java中的静态变量(static变量)是在类加载时初始化的,而不是在对象创建时。静态变量属于类,而不属于任何特定的对象,因此它们是共享的,所有类实例都可以访问。了解静态变量的初始化顺序对于理解和避免潜在的编程...
在 Java 中,静态数据初始化是指在类加载过程中对静态变量的初始化。静态变量是在类加载时被初始化的,而不是在实例创建时。静态变量的初始化顺序是按照它们在类中的定义顺序进行的。 在 Java 中有两种类型的变量:...
3. 静态变量的初始化顺序取决于它们在代码中声明的顺序,而不是它们在编译后的字节码中的顺序。 需要注意的是,静态初始化块只在类被加载时执行一次,而实例初始化块(构造函数)则会在每次创建类的实例时执行。...
在上述代码中,`count`为静态变量,所有`Example`的实例都将共享同一个`count`值,而`instanceCount`则为实例变量,每次创建新实例时,其值独立且不相互影响。 #### 2. Static方法 静态方法是`static`关键字的另一...
通过上面的示例代码,我们可以看到,Java 中类的加载顺序执行结果是按照静态变量的初始化、静态代码块的执行、非静态变量的初始化、非静态代码块的执行、构造方法的执行的顺序进行的。在父类和子类之间,静态变量的...
本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...
静态变量也称为类变量,静态方法也称为类方法。静态变量和静态方法可以直接通过类名调用,不需要通过对象去调用。 一、静态变量的定义和使用 静态变量是属于类的成员变量,它可以被所有对象共享。静态变量的定义...