zoukankan      html  css  js  c++  java
  • java中成员变量、代码块、构造函数运行顺序

    1、java虚拟机执行程序,首先须要装载类,安装现装载父类,初始化父类的静态代码块和静态成员变量
    再load子类。

    初始化子类静态代码块和成员变量
    2、load完成父类与子类后,从main函数入口运行程序。先输出,接着new实例化Beetle类,则先实例化父类Insect,实例化父类时。先初始化非静态成员变量和非静态代码块,接着运行父类构造方法
    再实例化子类,实例化子类时,先初始化非静态成员变量和非静态代码块,接着运行子类构造方法。



    package it.xiangnan.test;

    public class Beetle extends Insect {
        private int k = printInit("Beetle.k initialized");

        public Beetle() {
            System.out.println("k=" + k);
            System.out.println("j=" + j);
        }

        private static int x2 = printInit("static Beetle.x2 initialized");

        public static void main(String[] args) {
            System.out.println("Beetle constructor");
            Beetle b = new Beetle();
        }

    }

    class Insect {
        private int i = 9;
        protected int j;

        Insect() {
            System.out.println("i=" + i + ",j=" + j);
            j = 39;
        }
        
        private static int x1 = printInit("static Insect.x1 intialized");

        static int printInit(String s) {
            System.out.println(s);
            return 47;
        }
    }


    函数从main处运行
    Beetle有父类Insect。先初始化父类的静态成员变量x1,再初始化Beelte类静态成员变量x2
    转而从main处运行。输出Beetle constructor,因为紧接着实例化Bettle类。该类有父类Insect,则先运行父类构造函数。在运行子类构造函数
    static Insect.x1 initialized     1、父类Insect静态成员变量初始化值为47
    static Beetle.x2 initialized     2、Beetle类的静态成员变量x2初始化值为47
    Beetle constructor               3、输出
    i=9,j=0                          4、运行Beetle的父类Insect的默认构造函数
    Beetle.k initialized             5、运行Beetle类的默认构造函数,输出k值之前,调用printInit方法输出该句话。并初始化k值为47
    k=47                             6、分别输出k、j的值
    j=39


  • 相关阅读:
    PMP(第六版)十大知识领域、五大项目管理过程组、49个过程矩阵
    快速开发平台分享-UCML快速开发七种武器
    敏捷开发干货-快速开发平台的主题行为模型介绍
    MACHINE LEARNING
    What is “Neural Network”
    VS打开项目或解决方案卡死,一直处于未响应状态。
    Sql Server 本地(客户端)连接服务器端操作
    阿里云服务器,Sql Server 本地连接服务器端问题记录
    <%@ Register TagPrefix="uc1" TagName="user" Src="../Control/user.ascx" %>什么意思?
    IIS网站部署后,程序常见错误记录
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6766879.html
Copyright © 2011-2022 走看看