1.加载基类,初始化基类中的静态成员变量。
2.加载派生类,初始化派生类中的静态成员变量。
3.运行派生类的main方法。
4.初始化基类中的其他成员变量(static类型的除外)。
5.调用基类构造函数。
6.初始化派生类中的其他成员变量(static类型的除外)。
7.调用派生类构造函数。
for example:
Beetle.java
class Insect {
private int i = 9;
private int l = print("Insect.l initialized");
protected int j ;
public Insect(){
System.out.println("i="+i+" j="+j);
j = 39;
}
private static int x1 = print("static Insect.x1 initialized");
static int print(String s){
System.out.println(s);
return 47;
}
}
public class Beetle extends Insect{
private int k = print("Beetle.k initialized");
//private int j=100;
public Beetle(){
System.out.println("k = "+k);
System.out.println("j = "+j);
}
private static int y = print("Beetle.y initialized");
public static void main(String[] args) {
System.out.println("Beetle constructor");
Beetle b = new Beetle();
//Insect i = new Insect();
}
}
运行输出:
static Insect.x1 initialized
Beetle.y initialized
Beetle constructor
Insect.l initialized
i=9 j=0
Beetle.k initialized
k = 47
j = 39
分享到:
相关推荐
标题中的“全局变量初始化导致的dll加载失败工程”是一个典型的C++编程问题,涉及到动态链接库(DLL)的加载机制以及全局变量的初始化顺序。在C++编程中,全局变量的初始化顺序是一个需要深入理解的概念,尤其是在...
Java虚拟机(JVM)是Java程序运行的核心,它的内部机制包括了类的加载、链接、初始化等关键过程。在Java编程中,了解这些过程对于优化程序性能、理解和解决类加载问题至关重要。本文将深入探讨Java虚拟机中的类初始...
Java 类加载器静态变量初始化机制详解 Java 类加载器是 Java 语言的核心组件之一,负责将 Java 字节码文件加载到内存中,以便 JVM 可以执行它们。在 Java 中,类加载器是通过委派机制来实现的,即一个类加载器可以...
Java虚拟机JVM类加载初始化是Java程序运行过程中的关键环节,它负责将类的字节码文件加载到内存中并进行相应的处理,以便程序能够正确执行。在Java中,类加载器(Classloader)扮演着核心角色。下面将详细讨论类加载...
需要注意的是,静态初始化块只在类被加载时执行一次,而实例初始化块(构造函数)则会在每次创建类的实例时执行。静态变量的初始化是在类加载时完成的,而实例变量的初始化则在对象创建时进行。 在实际开发中,对...
静态初始化发生在程序加载时,主要针对那些可以用常量表达的初始化,例如零初始化(zero initialization)和常量初始化(const initialization)。零初始化的变量通常存放在BSS段,而常量初始化的变量则位于数据段,...
在Java编程语言中,程序初始化的顺序是一个关键概念,它涉及到类加载、对象创建以及执行流程的安排。了解这些顺序对于编写高效、无错误的代码至关重要。以下是对Java程序初始化顺序的详细说明: 1. **类加载阶段**...
此外,静态初始化块只在类加载时执行一次,而初始化块(也称为实例初始化块)会在每次创建类的新实例时执行。这意味着静态成员和静态初始化块对于所有类的实例都是共享的,而实例成员和实例初始化块则是每个对象独有...
这两种初始化块在创建类实例或加载类时分别扮演着不同的角色。 **静态初始化块** 静态初始化块是以`static`关键字标识的代码块,它在类被加载到Java虚拟机(JVM)时执行,且只执行一次。静态初始化块常用于设置类...
例如,假设我们有 2 个 bean A 和 B,B 加载的文件依赖 A 中加载的全局配置文件中的路径,所以需要 A 先于 B 初始化。此外,A 中的配置改变后也需要触发 B 的重新加载逻辑,所以 A 和 B 需要互相注入。 方案一:...
3. **父类静态成员变量及初始化块**:如果当前类继承自另一个类,则父类的静态成员变量和静态初始化块会在子类之前被初始化。 4. **实例成员变量的默认初始化**:创建对象时,默认情况下,实例成员变量会被初始化为...
Java程序在运行过程中涉及几个关键的概念,包括类加载、连接以及初始化等阶段。 1. **类加载**(Load):这是类生命周期的第一个阶段,主要任务是将编译好的字节码文件(`.class`文件)加载到内存中。这个过程具体...
java JVM 类加载-初始化 过程
静态初始化块用于初始化类级别的静态变量,它们只在类加载时执行一次。 2. **成员变量初始化**:接下来,初始化父类的非静态成员变量,这是通过调用父类的构造器实现的。Java规定每个子类实例在构造之前必须先调用...
静态初始化块(也称为静态初始化器)是在类被加载并初始化时执行的,且只执行一次。它用于初始化类级别的静态变量。在`init`目录下的文件可能包含了不同静态初始化的示例。 3. **实例化阶段**: 当我们创建一个新...
Java中的对象初始化流程是编程实践中一个非常重要的概念,它涉及到类加载、静态初始化块、实例初始化块、构造器等多个方面。下面将详细解释这个过程。 首先,对象初始化流程的起点是程序的入口点,即`main`方法。当...
- `ICC_WIN95_CLASSES` 初始化所有Win95及以后版本的通用控件。 - `ICC_DATE_CLASSES` 初始化日期选择器、时间选择器等。 - `ICC_USEREX_CLASSES` 初始化组合框扩展控件。 - `ICC_COOL_CLASSES` 初始化酷栏(Rebar)...
Revit外部工具无法初始化附加模块的解决方法 大家在安装完Revit或者卸载后重装Revit时是否遇到外部工具无法初始化附加模块的问题,每次打开不停的弹出对话框,烦得要死。 无法初始化附加模块“CollaborateDB”,...