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

java 基础 之 初始化

阅读更多
父类:

public class Parent {   
              
    public Parent() {   
        System.out.println("parent constructor called");   
    }   
              
    {   
        System.out.println("parent object initial block called");   
    }   
    {   
        System.out.println("parent second object initial block called");   
    }   
    static{   
        System.out.println("parent static initial block called");   
    }   
    static{   
        System.out.println("parent second static initial block called");   
    }   
}  


子类:
public class Son extends Parent {   
       
       
    public Son() {   
        System.out.println("son constructor called");   
       
    }   
    static{   
        System.out.println("son static initial block called");   
    }   
    static{   
        System.out.println("son second static initial block called");   
    }   
    {   
        System.out.println("son object initial block called");   
    }   
    {   
        System.out.println("son second object initial block called");   
    }   
       
}  



测试:Parent p = new Son(); 
结果:
parent static initial block called  
parent second static initial block called  
son static initial block called  
son second static initial block called  
parent object initial block called  
parent second object initial block called  
parent constructor called  
son object initial block called  
son second object initial block called  
son constructor called 


从测试结果可以看出:


第一步:执行static初始化块(在一个类中,从上往下执行,谁在上面谁先执行。)。

            对于static块,先执行父类static初始化块,然后再执行子类初始化块。

第二部:执行对象初始化。步骤:

           1)执行父类初始化块(在一个类中,从上往下执行,谁在上面谁先执行。)

           2)执行父类构造函数。

           3)执行子类初始化块。

           4)执行子类构造函数。
分享到:
评论

相关推荐

    java程序初始化顺序

    - 类的初始化是由对应的类加载器触发的,当且仅当以下条件之一满足时: - 遇到new关键字实例化对象; - 遇到静态字段(非final)并对其进行访问; - 遇到静态方法的调用; - 使用反射方式调用类; - 初始化子...

    java 初始化与方法

    本文将深入探讨Java中的初始化过程、方法的定义与调用,以及与之相关的源码和工具应用。 首先,让我们从类的初始化开始。在Java中,类的初始化通常发生在以下几个时刻:当类被首次加载、创建类的实例、访问静态变量...

    java中类的初始化顺序

    ### Java中类的初始化顺序详解 #### 一、概述 在Java编程语言中,类的初始化是一个非常重要的概念。类的初始化涉及到多个方面,包括静态成员变量、实例成员变量、静态初始化块、实例初始化块以及构造函数等。本文...

    Java变量初始化

    Java 变量初始化是 Java 语言的基础知识点之一,但也往往被学习者所忽略。 Java 变量初始化的时机是指在 Java 语言中变量的初始化过程,包括变量的声明、初始化和赋值的步骤。 Java 变量声明 在 Java 语言中,每个...

    Java基础之数组的动态初始化

    Java基础之数组的动态初始化

    达内 java云笔记 初始化 静态页面

    Java云笔记的初始化阶段是构建一个可运行的Web应用程序的关键步骤,这里的“初始化”通常指的是创建一个基础框架,包括前端界面和后端逻辑的初步设定。在这个场景中,我们关注的是前端部分,即HTML静态页面的构建。 ...

    java基础之对象的初始化

    java对象初始化问题

    java初级视频教程系列之-java初始化

    "Java初级视频教程系列之-java初始化"是一套专为初学者设计的教育内容,由经验丰富的IT专家精心录制,旨在帮助学习者掌握Java编程的基础,特别是关于对象初始化的重要概念。 在Java中,初始化是一个关键的步骤,它...

    深入java虚拟机加载初始化

    ### 深入Java虚拟机加载初始化 #### Classloader的作用及意义 在深入了解Java虚拟机(JVM)的加载初始化之前,我们先明确一下`Classloader`...希望本文能够帮助您更好地掌握Java虚拟机的核心机制之一:类加载初始化。

    【Java语言基础】初始化块

    文章目录【Java语言基础】初始化块使用初始化块静态初始化块总结代码 【Java语言基础】初始化块 初始化块又称为代码块。属于类中的第四大成员。本质上是一个方法,它也有方法体,但没有方法名,没有参数,没有返回,...

    Java中初始化数据域的四种方法

    这是最基础的初始化方式,只需在声明变量时直接为其赋予一个初始值。例如在`InitFiled.java`中可能有这样的代码: ```java public class InitFiled { private int num = 10; // 初始化为10 } ``` 这种方式...

    Java static静态初始快

    在Java编程语言中,`static`关键字扮演着重要的角色,特别是在初始化类的静态成员时。`static`静态初始化块是用来初始化类级别的变量,也就是说,这些变量是属于类本身,而不是类的实例。当我们讨论“Java static...

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

    这是 Java 编程语言的基础知识点之一,但是许多学生在学习和使用时总是感到困惑和困难。 二、JVM 执行过程中的“礼让”原则 JVM 在执行过程中遵循“礼让”原则,把握这一主线则可以很容易地理解和掌握对象初始化...

    Java中创建初始化对象.pdf

    总的来说,理解Java中对象的创建、初始化和使用是编程基础的关键。通过声明、实例化和初始化,我们可以创建出具备特定功能的对象,并通过它们来实现各种复杂的功能。在实际编程中,合理地管理对象生命周期,可以有效...

    Java中对象初始化顺序的详细介绍

    在编写复杂系统时,尤其是涉及到多层继承和复杂的初始化逻辑时,了解这些基础知识尤为重要,因为它有助于防止可能出现的错误和意外。在实际开发中,推荐使用构造器注入或者初始化方法来清晰地控制对象的初始化过程,...

    大数据必学Java基础(二十五):数组的三种初始化方式

    学习大数据技术时,掌握Java基础,特别是数组的初始化方式是至关重要的。本篇文章将详细讲解Java中数组的三种初始化方法:静态初始化、动态初始化和默认初始化。 一、静态初始化 静态初始化是指在声明数组的同时为...

    《Java基础入门(第3版)》(Java):课后答案-docx文档

    《Java基础入门(第3版)》是一本针对Java初学者的教材,其课后答案文档提供了对书中习题的解答,旨在帮助读者巩固所学知识。Java是一种面向对象的编程语言,具备跨平台性,由Java虚拟机(JVM)负责解释执行。Java...

    Java SSM框架初始工程

    Java SSM框架初始工程——开启你的Java Web开发之旅你是否正在寻找一个简单而有效的Java SSM(Spring + SpringMVC + MyBatis)框架初始工程?这个项目将为你提供一个坚实的基础,以构建企业级Java Web应用程序。这个...

    java初始化开发环境

    在Java开发过程中,初始化开发环境是至关重要的第一步,它为后续的编码、测试和部署奠定了基础。本篇文章将深入探讨如何规范目录和层级结构,重新初始化Koa2环境,以及如何连接数据库,特别是MongoDB,并利用...

Global site tag (gtag.js) - Google Analytics