`
eagle0824
  • 浏览: 231648 次
  • 性别: Icon_minigender_1
  • 来自: 镇江
社区版块
存档分类
最新评论

java执行顺序

    博客分类:
  • java
阅读更多
java在实例化时,一些静态方法,方法快,构造方法等的执行顺序!
/*
 * 父类含构造方法、静态块与非静态块
 */
public class Test0 {
	public Test0(){
		System.out.println("Test0 constructor parent!");
	}
	
	static {
		System.out.println("static block test0! parent");
	}
	
	{
		System.out.println("block test0! parent");
	}
}


/*
 * 子类方法含静态块非静态块及构造方法
 */

public class Test1 extends Test0{
	Test1(){
		System.out.println("Test1 constructor");
	}
	
	{
		System.out.println("block test1" );
	}
	static {
		System.out.println("static block test1!");
	}
	
	public static void main(String args[]){
		//System.out.println("main method!");
		Test1 test1 = new Test1();
	}
}	

执行结果为;
static block test0! parent
static block test1!
block test0! parent
Test0 constructor parent!
block test1
Test1 constructor

所以在实例化对象时的顺序为:
    父类静态块
    子类静态块
    父类块
    父类构造函数
    子类块
    子类构造函数
非实例化对象时的结果为:
     static block test0! parent
    static block test1!
    main method!
仅执行静态代码块


java中赋值顺序
成员变量,静态块,块,构造方法赋值顺序测试
/*
 * 父类含构造方法、静态块与非静态块
 */
public class Test0 {
	String para = "成员变量父类 aaa";
	public Test0(){
		
		para = "constructor 父类 aaa";
		System.out.println(para);
	}
	
	static {
		String para1 = "static block 父类 aaa";
		System.out.println(para1);
	}
	
	{
		System.out.println(para);
		para = "block 父类aaaa";
		System.out.println(para);
	}
}

/*
 * 子类方法含静态块非静态块及构造方法
 */

public class Test1 extends Test0{
	public String para = "成员变量子类 aaaa";
	
	Test1(){
		
		para = "constructor  子类aaaa";
		System.out.println(para);
	}
	
	{
		System.out.println(para);
		para = "block 子类aaaa";
		System.out.println(para );
	}
	static {
		String para1 = "static block 子类aaaa";
		System.out.println(para1);
	}
	
	public static void main(String args[]){
		//System.out.println("main method!");
		Test1 test1 = new Test1();
	}
}	

执行结果为:
     static block 父类 aaa
    static block 子类aaaa
    成员变量父类 aaa
    block 父类aaaa
    constructor 父类 aaa
    成员变量子类 aaaa
    block 子类aaaa
    constructor  子类aaaa

总结为执行顺序为:
  1、静态父类代码块
  2、静态子类代码块
  3、父类成员变量
  4、父类代码块
  5、父类构造方法
  6、子类成员变量
  7、子类代码块
  8、子类构造方法


执行顺序为:
        静态代码块-->代码块-->构造方法
        父类的快-->父类的构造器-->自身块-->自身构造器  
分享到:
评论
1 楼 zhongqiujiii 2012-08-28  
总结为执行顺序为:
  1、静态父类代码块
  2、静态子类代码块
  3、父类成员变量
  4、父类代码块
  5、父类构造方法
  6、子类成员变量
  7、子类代码块
  8、子类构造方法


这个不太对 (非静态)代码块 和成员变量  谁放到前面 谁先执行

相关推荐

    跟踪Java执行过程的方法.docx

    本文将介绍五种跟踪Java执行过程的方法,以及一个与之相关的Java库——Apache POI,用于创建Excel文件。 1. **基本方法:断点和单步执行** 这是最基础的调试手段,适用于简单场景。在IDE(如Eclipse或IntelliJ ...

    垃圾回收与JAVA运行过程实用.pdf

    Java语言以其跨平台性和自动内存管理机制而闻名,...Java运行过程包括类加载、字节码验证、解释执行等,这些步骤共同保证了程序的高效运行和安全性。理解这些概念对于优化Java应用程序性能和确保系统稳定性至关重要。

    JAVA 实时运行环境插件

    Java实时运行环境插件是Java应用程序的一个关键组成部分,主要用于在Internet Explorer浏览器中运行Applet小程序。Applet是一种基于Java的小型应用程序,它可以在用户的Web浏览器中执行,为用户提供丰富的交互体验。...

    7、垃圾回收与JAVA运行过程.pdf

    Java垃圾回收机制是Java语言中的...综上所述,Java的垃圾回收机制是通过可达性分析来判断对象是否可回收,而Java的运行过程包括类加载、字节码验证、内存划分和解释执行等步骤。这些特性确保了程序的高效运行和安全性。

    Java类执行顺序详解+实例(阿里面试题)+详细讲解+流程图

    Java类的执行顺序是编程过程中一个非常重要的概念,特别是在深入理解和优化代码性能时。本文将详细探讨Java类的加载、初始化、执行等步骤,并通过实例分析阿里面试中可能涉及的相关问题,结合流程图帮助理解这一过程...

    Java类的基本运行顺序

    本文将详细解析Java类的基本运行顺序,包括加载、初始化、执行等阶段,以及相关工具的运用。 首先,我们从类的生命周期开始。一个Java类的生命周期可以分为以下几个阶段: 1. **加载(Loading)**:当Java虚拟机...

    JRE java运行环境

    Java运行环境(Java Runtime Environment,简称JRE)是执行Java应用程序所必需的软件组件,它提供了执行Java字节码的虚拟机(Java Virtual Machine,JVM)以及必要的库和其他支持文件。在Java开发中,编写好的Java...

    将java项目打包成可执行软件过程(可在未安装java虚拟机的电脑上运行)

    将Java项目打包成可执行软件是一项实用且关键的技能,尤其对于希望在未安装Java虚拟机(JVM)的计算机上运行应用程序的开发者而言。这一过程不仅能够提高软件的兼容性和便携性,还能增强用户体验,减少用户在安装和...

    最新JAVA运行库,一个运行JAVA的环境

    4. **Java部署技术**:如Java Web Start,允许用户通过点击链接下载并运行网络上的Java应用程序,无需安装过程。 "jre-6u12-windows-i586-p.exe" 是这个Java运行库的安装文件,针对Windows 32位(i586)系统。这个...

    java jre 1.8 java运行环境

    Java JRE 1.8,全称为Java Runtime Environment,是Oracle公司提供的用于执行Java应用程序的必备组件。它包含了Java虚拟机(JVM)、类库以及其他支持Java程序运行的必要组件。JRE 1.8是Java发展过程中的一个重要版本...

    JAVA面向过程的程序设计

    在面向过程编程中,程序员关注的是如何将问题分解为一系列可执行的步骤,并且使用数据结构来存储和处理数据。例如,在C语言这样的面向过程语言中,我们定义函数来表示过程,使用数组和结构体等数据结构来表示数据。 ...

    DB2Java存储过程.pdf

    ### DB2 Java 存储过程相关知识点 #### 标题:DB2 Java 存储过程 **DB2 Java 存储过程** 主要探讨的是如何在 IBM DB2 数据库环境中利用 Java 编写存储过程。这涉及到 DB2 的一系列产品和服务,特别是与 Java 集成...

    Java基础教案\JAVA精讲入门

    JAVA入门基础篇,适合于初学者.第一章 Java语言入门 授课内容: ...7.分析Java运行过程,再次讲解Jvm、字节码等概念 8.简单介绍JSP技术 作业: 1. 配置环境变量 2. 完成第一个Java程序的编译及运行

    Java运行环境配置

    要使用Java编写和运行程序,首先需要正确配置Java运行环境,这通常包括安装Java Development Kit (JDK)、设置环境变量以及验证配置是否成功。本文将详细解释这个过程。 1. **Java Development Kit (JDK) 安装**: ...

    Java运行时动态编译

    Java运行时动态编译是Java语言的一个重要特性,它使得Java程序在运行过程中可以对代码进行优化和调整,极大地提高了程序的性能。这个特性主要得益于Java的Just-In-Time (JIT) 编译器,它是Java虚拟机(JVM)的一部分...

    ARM开发板配置java运行环境成功笔记记录

    在本文中,我们将深入探讨如何在ARM架构的开发板上配置Java运行环境,以便能够成功地执行Java测试代码。ARM开发板通常用于嵌入式系统和物联网(IoT)设备,而Java是一种广泛使用的编程语言,尤其适用于这些平台。下面...

    java入门必备知识:java运行环境详细介绍

    Java 入门学习的过程中,了解并设置好Java运行环境是至关重要的一步。本文将详细讲解Java运行环境的基础知识,帮助新手快速掌握Java开发环境的搭建。 首先,我们要明确开发Java需要哪些基本组件。最核心的就是Java ...

    java简单方法顺序调用注解

    在Java中,注解通过`@AnnotationName`的形式来声明,它们本身不直接影响程序的执行,但可以用于代码的验证、编译时的检查、运行时的行为修改等。 标题中的“java简单方法顺序调用注解”是指使用注解来控制类中方法...

Global site tag (gtag.js) - Google Analytics