简化顺序版本是:

  1. 父类的静态成员赋值和静态块,代码排版先后顺序执行,只运行一次
  2. 子类的静态成员赋值和静态块,代码排版先后顺序执行,只运行一次
  3. 父类代码块
  4. 父类构造方法
  5. 子类初始化块
  6. 子类构造方法

再次构造子类,将重复3/4/5/6步骤

总之:见到静态必先行-》类中代码块-》构造。

public class Hello {

static class A{

static C c =new C();

public A(){

System.out.println("A's Constructor");

}

static {

System.out.println("A's static ");

}

}

static class B extends A{

public B(){

System.out.println("B's Constructor");

}

D d = new D();

C c =new C();

static {

System.out.println("B's static ");

}

}

static class C {

public C(){

System.out.println("C's Constructor");

}

static {

System.out.println("C's static");

}

}

static class D{

public D(){

System.out.println("D's Constructor");

}

static {

System.out.println("D's static");

}

}

public static void main(String args[]){

System.out.println("start");

B b = new B();

}

}

结果:

start

C's static

C's Constructor

A's static

B's static

A's Constructor

D's static

D's Constructor

C's Constructor

B's Constructor

第二例子:

http://blog.csdn.net/wenwen091100304/article/details/49488137

java运行顺序-JVM之九的更多相关文章

  1. Java类的基本运行顺序是怎样

    我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo{ private String name; private int age; public Demo(){ ...

  2. Java类的基本运行顺序

    不看不知道,一看还真吓了一跳!Java类的基本运行顺序你真的知道吗?如果你有疑惑,那就看下面这篇文章吧.   原文出自:[url]http://column.ibeifeng.com/chenchen ...

  3. 【Java】关于JVM运行时内存空间、JVM垃圾回收机制

    参考的优秀文章 <深入理解Java虚拟机 JVM高级特性与最佳实线>(机械工业出版社) Java虚拟机的堆.栈.堆栈如何去理解? 聊聊JVM的年轻代 前言 本文是<深入理解Java虚 ...

  4. Jvm基础(1)-Java运行时数据区

    最近在看<深入理解Java虚拟机>,里面讲到了Java运行时数据区,这是Jvm基本知识,把读书笔记记录在此.这些知识属于常识,都能查到的,如果我有理解不对的地方,还请指出. 首先把图贴上来 ...

  5. Java内存管理:Java内存区域 JVM运行时数据区

    转自:https://blog.csdn.net/tjiyu/article/details/53915869 下面我们详细了解Java内存区域:先说明JVM规范定义的JVM运行时分配的数据区有哪些, ...

  6. Java知多少(23)类的基本运行顺序

    我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo{ private String name; private int age; public Demo(){ ...

  7. jvm系列(九):Java GC 分析

    Java GC就是JVM记录仪,书画了JVM各个分区的表演. 什么是 Java GC Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之 ...

  8. [Java学习] Java类的基本运行顺序

    我们以下面的类来说明一个基本的 Java 类的运行顺序: 1. public class Demo{ 2. private String name; 3. private int age; 4. 5. ...

  9. JVM发展史和Java运行时内存区域

    目前三大主流JVM: Sun HotSpot:Sun于1997年收购Longview Technologies公司所得.Sun于2009年被Oracle收购. BEA JRockit:BEA于2002 ...

随机推荐

  1. js打印相关,注意此方法受到IE安全性设置影响

    <HTML><HEAD><TITLE>javascript打印-打印页面设置-打印预览代码</TITLE>  <SCRIPT language=j ...

  2. 第十章:DOM

    <div class="wrap"> <ul id="ul"> <li>01</li> <li>02 ...

  3. 转 oracle 默认自动统计信息 时间修改

    ############sql3: https://blog.csdn.net/dataminer_2007/article/details/41363417http://blog.51cto.com ...

  4. shell 命令下载软件 安装软件

    下载命令:wget URL地址 wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noa ...

  5. android Activity启动过程(四)startActivityUncheckedLocked

    final int startActivityUncheckedLocked(ActivityRecord r, ActivityRecord sourceRecord, IVoiceInteract ...

  6. python + selenium 练习篇 - 定位元素的方法

    1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8from selenium import webdriverdriver = webdriver.Chrome() ...

  7. C++的友元函数

    友元函数不是成员函数,是类外函数所以声明放在类的私有段或公有段且没有区别.但是它可以访问类中的私有成员.友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私 ...

  8. linux 测试远程主机端口

    检测远程端口是否打开 常用telnet 110.101.101.101 80方式测试远程主机端口是否打开. 除此之外还可以使用: 方法1.nmap ip -p port 测试端口 nmap ip 显示 ...

  9. Kafka Intro - Configuration

    #Notes: /opt/kafka/config/zookeeper.properties sample # the directory where the snapshot is stored.d ...

  10. mysql初期使用全本

    mysql mysql前戏 数据库服务器-:运行数据库管理软件 =>pc 数据库管理软件:管理-数据库 => mysql 数据库:用来组织文件/表 => 文件夹 表:用来存放多行内容 ...