2 u013370108 u013370108 于 2016.04.04 20:25 提问

java代码执行顺序求解释?
public class ExA {
    private static ExA a = new ExA();
    static {
        System.out.println("父类--静态代码块");
    }

    public ExA() {
        System.out.println("父类--构造函数");
    }

    {
        System.out.println("父类--非静态代码块");
    }

    public static void main(String[] args) {
        new ExB();
    }
}

class ExB extends ExA {
    private static ExB b = new ExB();
    static {
        System.out.println("子类--静态代码块");
    }
    {
        System.out.println("子类--非静态代码块");
    }

    public ExB() {
        System.out.println("子类--构造函数");
    }
}

父类--非静态代码块
父类--构造函数
父类--静态代码块
父类--非静态代码块
父类--构造函数
子类--非静态代码块
子类--构造函数
子类--静态代码块
父类--非静态代码块
父类--构造函数
子类--非静态代码块
子类--构造函数

3个回答

AEWW922
AEWW922   2016.04.04 20:29
已采纳

静态代码块在类加载的时候就执行,非静态代码块在执行构造方法时先执行非静态代码块在执行构造方法

CSDNXIAON
CSDNXIAON   2016.04.04 20:32

java代码执行顺序
Java代码执行顺序
Java代码的执行顺序
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.04 21:43

你的测试输出已经很好地说明了java类处理的流程了,首先是静态代码块的执行,而非静态代码块是在创建实例对象new操作的时候执行的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java代码执行顺序总结
这个问题可能每个小伙伴学习Java的时候都遇到过,但恐怕很多时候都没重视。举个栗子来讲解,栗子有一部分copy了别人的代码。。 父类: package test; public class Father { public Father() { System.out.println("Father Constructor is running"); } public Father(i
jsp中java代码、jsp代码、js代码执行的顺序
原理: jsp中的java代码 —— 服务器端代码 js代码 —— 客户端代码 java是在服务器端运行的代码,jsp在服务器的servlet里运行,而javascript和html都是在浏览器端运行的代码。 所以服务器端先执行,执行后将信息传给客户端。 因此加载jsp页面的执行顺序是java>jsp>js, 加载jsp的时候先编译java代码,有错误的话会直接报错;没报错的话会执行js
Java代码执行流程
java调用顺序
关于在jsp中java代码和js以及html代码的执行顺序
首先,jsp的页面加载时按照java>html>js的顺序加载的,在加载的时候尤其要注意js中全局变量的加载顺序。 1.js在jsp中的加载顺序 页面上的js代码时html代码的一部分,所以页面加载的时候是由上而下加载。所以js加载的顺序也就是页面中标签出现的顺序。标签里面的或者是引入的外部js文件的执行顺序都是其语句出现的顺序,其中js执行的过程也是页面装载的一部分。 2.在js脚
sql关键字的解释执行顺序
有一次笔试考到了关于SQL关键字执行顺序的知识点。 我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助。   要知道SQL语句,我想我
JAVA代码执行顺序
(只是笔记而已,网上大把这个问题的博文,参照原文) 一、JAVA中的执行顺序public class Tree { public Tree(){ System.out.println("this parent tree"); } { System.out.println("parent block"); } static{
java代码执行顺序
java代码执行顺序一般遵循一些规律,包括: 1.先静态后非静态,其中静态部分是在加载阶段执行,非静态部分是在创建阶段执行,并且静态部分只执行一次。 2.先父类后子类 3.先属性赋值,其次代码块,最后构造函数。 具体下来就是: 1.  直接父类为Object的类创建对象过程 a. 加载类阶段 1)为静态属性分配内存并赋值  2)执行静态代码段 b.
Java代码的执行顺序
转载自http://java-mzd.iteye.com/blog/838683 本文主要介绍以下两块内容的执行顺序,熟悉的大虾可以直接飘过。      一。JAVA中执行顺序 静态块块构造器父类构造器     二。JAVA中赋值顺序       静态块直接赋值      块直接赋值      父类继承的属性已赋值      静态变量声明时赋值      成员变量声明
Java代码块执行顺序
Java中静态代码块、构造代码块、构造方法代码块、父子类代码块之间执行顺序及代码示例 1、静态代码块 public class HelloA { public HelloA() { System.out.println("constructor A..."); } //这是构造代码块,而且在new对象时,构造代码块优先构造方法执行 { System.out.prin
Java代码执行顺序
Java中不同类型代码是由严格的执行顺序的。