`
tedeyang
  • 浏览: 328293 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用一个例子搞清楚java类的初始化过程

阅读更多


今天培训的时候,为了演示java类的初始化过程,我写了一个类。
不过因为没有准备好,导致演示失败了。呵呵
现在我整理了一下思路,把这个例子重新写了一下。

 代码如下,java文件可以见附件。执行一下——>所有疑惑都在《Thinking in java》的“初始化和清理”那一章,有兴趣者请查阅。

 // New.java

 

 /**
 * 演示类的初始化过程
 * @author yangxg
 */
public class New extends Old {
    public static void main(String[] args) {
        System.out.println("-->运行new New(\"5\")");
        New new1 = new New("new_1");
    }
    
    static Flag staticFlag1 = new Flag("static_flag_1");//静态变量
    static{
        System.out.println("New类静态代码块初始化");//静态块
    }
    Flag flag1 = new Flag("flag_1");//类变量
    
    public New(String i) {//构造函数
        super(i+"父类");
        System.out.println(i+"构造函数初始化");
    } 
    
    
}
class Old{
    static Flag staticFlag0 = new Flag("static_Flag_0");
    static{
        System.out.println("Old类静态代码块初始化");
    }
    Flag flag0 = new Flag("flag_0");
    /**
     * @param name 对象引用名称
     */
    Old(String name){
        System.out.println(name+"的构造函数初始化");
    }
}
class Flag{
    Flag(String f){
        System.out.println(f+"初始化");
    }
}

 【2008-3】

分享到:
评论

相关推荐

    Java类继承初始化顺序

    在Java编程语言中,类继承是面向对象设计的一个核心特性,它允许我们创建一个新类(子类)作为现有类(父类)的扩展。当我们谈论“Java类继承初始化顺序”时,涉及到的关键知识点包括构造器、成员变量的初始化、...

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

    类--初始化块"); 39. } 40. // 构造器 41. public SubClass() { 42. System.out.println("子类--构造器"); 43. } 44. 45. public static void main(String[]...因此,掌握类的初始化顺序是每个Java开发者必备的知识点。

    类继承的初始化顺序类,继承的初始化顺序

    然而,在涉及到类继承时,一个重要的问题是类实例化时的初始化顺序。本篇文章将围绕“类继承的初始化顺序”这一主题展开,详细解析初始化过程中涉及的关键概念和技术细节。 ### 类继承的初始化顺序概述 在面向对象...

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

    总之,理解并有效地使用静态和对象初始化块是Java开发中的关键技能,它们可以帮助我们更好地控制类和对象的初始化过程,确保代码的高效性和正确性。在实际编程中,我们应该根据需求谨慎选择合适的初始化策略,以优化...

    Java变量初始化

    在使用 new 操作符创建一个类的实例对象的时候,开始分配空间并将成员变量初始化为默认的数值。在这里并不是指将变量初始化为在变量定义处的初始值,对于基本类型变量,默认值为空值是 0 或 false,对于引用类型变量...

    深入java虚拟机(三)——类的生命周期(下)类的初始化1

    在这个例子中,当我们首次主动使用`Singleton`类时,`counter1`和`counter2`会被初始化。由于`singleton`对象的创建,`counter1`会增加1,而`counter2`保持其默认值0。 了解类的初始化对于优化代码性能、避免并发...

    java 初始化与方法

    同时,"second"这个名字可能是另一个文档或资源,它可能与类的初始化或方法的实现有关,同样值得我们去探索和学习。 在Java开发中,工具的运用也是提高效率的重要一环。IDE(集成开发环境)如Eclipse、IntelliJ ...

    JAVA面试题解惑系列(一)——类的初始化顺序-JAVA程序员JAVA工程师面试必看.pdf,这是一份不错的文件

    现在,让我们来看一个简单的例子,了解类的初始化顺序是如何工作的。假设我们有两个类,Father 和 Son,Son 继承自 Father。Father 类中有一个静态变量和一个静态初始化块,Son 类中也有一个静态变量和一个静态初始...

    JAVA面试题解惑系列——类的初始化顺序

    在Java中,类的初始化顺序是一个经常被问及的面试题目,尤其对于Java程序员和工程师来说,了解这个知识点是必须的。在Java中,类的初始化顺序是面试中的经典问题之一,它涉及到继承、静态成员以及实例成员等多个方面...

    “礼让”原则学习Java对象初始化顺序.pdf

    在学习 Java 编程语言时,对象初始化顺序是一个非常重要的知识点,但是许多学生却感到困惑和困难。事实上,Java 对象初始化顺序并不难理解,只需要掌握“礼让”原则和 JVM 的执行过程。 一、Java 对象初始化顺序的...

    Java类初始化顺序

    Java类的初始化顺序是编程中一个非常重要的概念,它涉及到对象的创建过程和成员变量的初始化。当一个Java类被实例化或者其静态成员被访问时,类的初始化过程就开始了。以下详细解释了Java类的初始化顺序: 1. **...

    6种方法初始化JAVA中的list集合

    本文将详细介绍6种初始化Java List集合的方法,并通过代码示例帮助理解每种方法的使用和特点。 1. 常规方式 这是最常见的初始化List的方式,通过创建ArrayList实例并逐个添加元素。自JDK 7以后,可以省略泛型类型的...

    C++和Java初始化顺序的比较代码

    其中一个显著的区别在于它们处理对象初始化的顺序。本篇文章将深入探讨C++和Java中变量和成员初始化的差异,并通过具体的代码示例进行对比。 在C++中,初始化顺序遵循以下规则: 1. 静态成员变量:无论它们在哪里...

    JAVA面试题解惑系列(一)——类的初始化顺序-JAVA程序员JAVA工程师面试必看.pdf

    在Java编程世界中,类的初始化顺序是理解面向对象编程概念的一个重要方面。尤其对于那些准备应对技术面试的Java程序员和工程师来说,掌握这一知识点是面试时的必备能力之一。本文将深入探讨Java中类的初始化顺序,...

    java语法\Java数组声明、创建、初始化

    Java数组声明、创建、初始化 Java数组是指在Java语言中可以存储多个相同类型元素的数据结构。数组是一种引用类型,它的元素可以是基本类型,也可以是对象类型。Java数组的声明、创建和初始化是Java编程中非常重要的...

    java初始化和清理

    Java类加载机制中还有一个重要的概念是初始化块,它允许程序员在类加载时执行特定的代码,而不必等到对象创建或静态成员被访问。初始化块可以是静态的,也可以是非静态的,分别在类加载时和对象构造时执行。对于继承...

    java对象的初始化顺序[参考].pdf

    Java对象的初始化顺序是一个关键的编程概念,它涉及到类加载、静态初始化、实例初始化等多个步骤。下面我们将详细探讨这些步骤。 首先,当程序运行并创建一个新的对象时,JVM(Java虚拟机)会按照特定的顺序来初始...

    45.java数组动态初始化.zip

    45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip...

    44.java数组静态初始化.zip

    44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip...

Global site tag (gtag.js) - Google Analytics