`
qqqckm
  • 浏览: 11935 次
  • 来自: ...
社区版块
存档分类
最新评论

初始化及类的加载!!!

    博客分类:
  • Java
J# 
阅读更多
      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加载失败工程

    标题中的“全局变量初始化导致的dll加载失败工程”是一个典型的C++编程问题,涉及到动态链接库(DLL)的加载机制以及全局变量的初始化顺序。在C++编程中,全局变量的初始化顺序是一个需要深入理解的概念,尤其是在...

    解析Java虚拟机中类的初始化及加载器的父委托机制共14页

    Java虚拟机(JVM)是Java程序运行的核心,它的内部机制包括了类的加载、链接、初始化等关键过程。在Java编程中,了解这些过程对于优化程序性能、理解和解决类加载问题至关重要。本文将深入探讨Java虚拟机中的类初始...

    Java类加载器:静态变量初始化.docx

    Java 类加载器静态变量初始化机制详解 Java 类加载器是 Java 语言的核心组件之一,负责将 Java 字节码文件加载到内存中,以便 JVM 可以执行它们。在 Java 中,类加载器是通过委派机制来实现的,即一个类加载器可以...

    Java虚拟机JVM类加载初始化

    Java虚拟机JVM类加载初始化是Java程序运行过程中的关键环节,它负责将类的字节码文件加载到内存中并进行相应的处理,以便程序能够正确执行。在Java中,类加载器(Classloader)扮演着核心角色。下面将详细讨论类加载...

    探究java的ClassLoader及类变量初始化顺序

    需要注意的是,静态初始化块只在类被加载时执行一次,而实例初始化块(构造函数)则会在每次创建类的实例时执行。静态变量的初始化是在类加载时完成的,而实例变量的初始化则在对象创建时进行。 在实际开发中,对...

    C++全局变量初始化的一点总结

    静态初始化发生在程序加载时,主要针对那些可以用常量表达的初始化,例如零初始化(zero initialization)和常量初始化(const initialization)。零初始化的变量通常存放在BSS段,而常量初始化的变量则位于数据段,...

    java程序初始化顺序

    在Java编程语言中,程序初始化的顺序是一个关键概念,它涉及到类加载、对象创建以及执行流程的安排。了解这些顺序对于编写高效、无错误的代码至关重要。以下是对Java程序初始化顺序的详细说明: 1. **类加载阶段**...

    java面试题-类的初始化顺序.doc

    此外,静态初始化块只在类加载时执行一次,而初始化块(也称为实例初始化块)会在每次创建类的新实例时执行。这意味着静态成员和静态初始化块对于所有类的实例都是共享的,而实例成员和实例初始化块则是每个对象独有...

    Java静态初始化块和对象初始化块

    这两种初始化块在创建类实例或加载类时分别扮演着不同的角色。 **静态初始化块** 静态初始化块是以`static`关键字标识的代码块,它在类被加载到Java虚拟机(JVM)时执行,且只执行一次。静态初始化块常用于设置类...

    详解Spring 中如何控制2个bean中的初始化顺序

    例如,假设我们有 2 个 bean A 和 B,B 加载的文件依赖 A 中加载的全局配置文件中的路径,所以需要 A 先于 B 初始化。此外,A 中的配置改变后也需要触发 B 的重新加载逻辑,所以 A 和 B 需要互相注入。 方案一:...

    java中类的初始化顺序

    3. **父类静态成员变量及初始化块**:如果当前类继承自另一个类,则父类的静态成员变量和静态初始化块会在子类之前被初始化。 4. **实例成员变量的默认初始化**:创建对象时,默认情况下,实例成员变量会被初始化为...

    深入java虚拟机加载初始化

    Java程序在运行过程中涉及几个关键的概念,包括类加载、连接以及初始化等阶段。 1. **类加载**(Load):这是类生命周期的第一个阶段,主要任务是将编译好的字节码文件(`.class`文件)加载到内存中。这个过程具体...

    java JVM 类加载-初始化 过程

    java JVM 类加载-初始化 过程

    Java类继承初始化顺序

    静态初始化块用于初始化类级别的静态变量,它们只在类加载时执行一次。 2. **成员变量初始化**:接下来,初始化父类的非静态成员变量,这是通过调用父类的构造器实现的。Java规定每个子类实例在构造之前必须先调用...

    java代码的初始化顺序demo

    静态初始化块(也称为静态初始化器)是在类被加载并初始化时执行的,且只执行一次。它用于初始化类级别的静态变量。在`init`目录下的文件可能包含了不同静态初始化的示例。 3. **实例化阶段**: 当我们创建一个新...

    对象初始化流程梳理对象初始化流程梳理

    Java中的对象初始化流程是编程实践中一个非常重要的概念,它涉及到类加载、静态初始化块、实例初始化块、构造器等多个方面。下面将详细解释这个过程。 首先,对象初始化流程的起点是程序的入口点,即`main`方法。当...

    MFC中通用控件的初始化

    - `ICC_WIN95_CLASSES` 初始化所有Win95及以后版本的通用控件。 - `ICC_DATE_CLASSES` 初始化日期选择器、时间选择器等。 - `ICC_USEREX_CLASSES` 初始化组合框扩展控件。 - `ICC_COOL_CLASSES` 初始化酷栏(Rebar)...

    Revit+外部工具+无法初始化附加模块“CollaborateDB”,因为程序集C:\Prog+无法初始化附加模块的解决方法

    Revit外部工具无法初始化附加模块的解决方法 大家在安装完Revit或者卸载后重装Revit时是否遇到外部工具无法初始化附加模块的问题,每次打开不停的弹出对话框,烦得要死。 无法初始化附加模块“CollaborateDB”,...

Global site tag (gtag.js) - Google Analytics