`

关于代码执行顺序

阅读更多
很多时候我觉得我的基础也还可以了,但是感觉还不够,下面是我被面试的一个面试题目,我稍微改了下的。


有三个类,b类继续a类,c类似被a类引用。


public class A {
	private C c=new C();
	A(){
		System.err.println("A1");
	}
	
	
	{
		System.err.println("A2");
	}
	
	static{
		System.err.println("A3");
	}
	
	private C c2=new C();

}


public class B  extends A{
	B(){
		System.err.println("B1");
	}
	
	{
		System.err.println("B2");
	}
	
	static{
		System.err.println("B3");
	}
	 public static void main(String[] args) {
		 B a=new B();
	 }

}


public class C {
	C(){
		System.err.println("C");
	}

}



运行b类的main方法,结果是什么呢?












结果是:
A3
B3
C
A2
C
A1
B2
B1



大家知道这是为什么吗?
0
6
分享到:
评论
3 楼 huangyunbin 2013-05-22  
呵呵 muyishuihan说的很清楚明白啊。估计你应付这样的面试是没问题了。呵呵
2 楼 muyishuihan 2013-05-21  
初始化顺序:

父类静态变量,静态初始化块
子类静态变量,静态初始化块
父类变量,初始化块
父类构造器
子类变量,初始化块
子类构造器

变量和初始化块顺序视位置而定
1 楼 jinnianshilongnian 2013-05-21  
《深入Java虚拟机》 对这块讲的很清楚

相关推荐

    控制台展示执行顺序

    此外,`synchronized`关键字可以帮助我们在多线程环境中确保特定代码块的执行顺序。当一个方法或代码块被`synchronized`修饰时,同一时间只能有一个线程访问它,从而强制执行顺序。 ```java public class ...

    ASP.NET中不同部分的js代码的执行顺序

    ### ASP.NET中不同部分的js代码的执行顺序 ...综上所述,在ASP.NET应用中管理JavaScript代码执行顺序需要考虑多种因素。理解这些规则有助于开发者更高效地编写和维护代码,确保页面逻辑的正确性和一致性。

    Java 普通代码块静态代码块执行顺序(实例讲解)

    在Java编程语言中,了解代码块的执行顺序对于编写高效且无错的代码至关重要。这里我们将深入探讨Java中的普通代码块(实例初始化块)和静态代码块的执行顺序,并通过实例来阐述这一概念。 首先,我们需要明白两种...

    jsp页面中的代码执行加载顺序介绍.docx

    在开发过程中,理解JSP页面中的代码执行顺序对于确保程序逻辑正确执行至关重要。本文将详细介绍JSP页面中代码的执行加载顺序,帮助开发者更好地理解和优化其应用。 #### 二、JSP页面的基本结构 JSP页面通常包含...

    JavaScript执行顺序

    综上所述,了解JavaScript的执行顺序对于编写高效、可维护的代码至关重要。通过掌握文档流中的执行顺序以及预编译阶段的行为,开发者能够更好地控制脚本的执行流程,避免常见的陷阱,并写出更加健壮的应用程序。

    SQL语句执行顺序说明

    ### SQL语句执行顺序说明 #### 一、SQL语句准备执行阶段 当SQL语句进入Oracle的库缓存后,为了确保其能够被正确执行,Oracle会经历一系列的检查和准备过程。这一阶段主要涉及以下几个步骤: 1. **语法检查**:...

    testng注解方法执行顺序

    首先,了解TestNG的测试执行顺序是非常重要的,它能够帮助测试人员更好地组织测试代码。在TestNG中,有多种注解用于定义测试执行前后所需执行的方法,以及用于分组测试等。根据提供的文档内容,TestNG的执行顺序可...

    html中嵌入js执行顺序_html中嵌入js执行顺序_

    总结来说,理解HTML中嵌入JavaScript的执行顺序是至关重要的,它可以帮助我们优化代码结构,提高网页性能,并避免因脚本执行时机不当导致的问题。在实际开发中,应合理利用`async`、`defer`等特性,以及模块化加载...

    unity多个物体间的脚本执行顺序

    在Unity引擎中,脚本执行顺序是一个至关重要的概念,特别是在涉及多个游戏对象(GameObject)交互时。Unity5.3版本虽然较旧,但其脚本执行的原理在后续版本中依然适用,只是部分细节可能有所优化。理解并掌握这一...

    Java静态代码块作用及执行顺序解析

    Java静态代码块作用及执行顺序解析 Java静态代码块是Java语言中的一种特殊代码块,它们在类加载的时候执行,且只执行一次。它们通常用来初始化静态变量、设置静态变量的初始值等。静态代码块的作用域是整个类,而...

    类加载顺序的代码执行结果

    先静态代码块,然后构造代码块,再是构造方法,然后方法里面的代码块按顺序执行。 子类继承父类的时候,先执行父类的静态代码块,然后子类的静态代码块,然后父类的构造代码块和构造方法,再是子类的构造代码块和...

    Android代码块执行顺序分析总结

    Android代码块执行顺序分析总结 Android代码块执行顺序是指在Java中,代码块、变量、方法的加载顺序是一个重要的知识点,对于Android开发者来说尤其重要。本文将详细介绍Android代码块执行顺序的分析总结。 一、...

    构造函数与静态块的执行顺序

    通过分析给定的代码示例,我们可以清晰地看到这一执行顺序: ```java // Person类的静态块 thisisperson'sstatic // Student类的静态块 thisisstudent'sstatic // Person类的构造函数 thisisperson // Student类的...

    Java常见笔试、面试题目深度剖析,方法重写详解、静态代码块与构造方法执行顺序问题

    本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...

    探析浏览器执行JavaScript脚本加载与代码执行顺序

    浏览器执行JavaScript脚本加载与代码执行顺序是网页开发中至关重要的一环,因为它直接影响到网页的渲染和用户体验。本文主要探讨了两种关键的概念:JavaScript脚本的阻塞性和执行顺序。 1. JavaScript脚本的阻塞性...

    派生类构造函数和析构函数的执行顺序

    派生类构造函数和析构函数的执行顺序 在面向对象编程中,继承是非常重要的一个概念。派生类可以继承基类的成员,实现代码的重复利用。但是,基类的构造函数和析构函数不能被继承。如果在派生类中需要对新增加的成员...

    Java:静态代码块和构造函数执行顺序

    /*大体上顺序是这样的:(也可以说是优先级,同一级的按顺序执行)  1 静态变量,静态代码块(类加载时执行,类不加载不执行)  2 实例变量,实例代码块(创建对象时才执行,不创建对象不执行)  3 构造函数,...

    【pytest官方文档】解读fixtures - 11. fixture的执行顺序,3要素详解.docx

    在上面的代码示例中,所有fixture都被赋予了不同的作用范围,最终测试函数`test_order`验证了这个执行顺序。 其次,fixture之间的依赖关系(dependencies)也会影响执行顺序。如果一个fixture需要另一个fixture的...

    类执行顺序小结.doc

    以下是对类执行顺序的深入解析,基于标题“类执行顺序小结”和描述“关于Java类的执行顺序详解”。 #### 一、类的加载与初始化顺序 1. **父类先于子类执行**:当一个类被加载时,如果该类有父类,那么父类将优先被...

Global site tag (gtag.js) - Google Analytics