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、子类构造方法
执行顺序为:
静态代码块-->代码块-->构造方法
父类的快-->父类的构造器-->自身块-->自身构造器
分享到:
相关推荐
本文将介绍五种跟踪Java执行过程的方法,以及一个与之相关的Java库——Apache POI,用于创建Excel文件。 1. **基本方法:断点和单步执行** 这是最基础的调试手段,适用于简单场景。在IDE(如Eclipse或IntelliJ ...
Java语言以其跨平台性和自动内存管理机制而闻名,...Java运行过程包括类加载、字节码验证、解释执行等,这些步骤共同保证了程序的高效运行和安全性。理解这些概念对于优化Java应用程序性能和确保系统稳定性至关重要。
Java实时运行环境插件是Java应用程序的一个关键组成部分,主要用于在Internet Explorer浏览器中运行Applet小程序。Applet是一种基于Java的小型应用程序,它可以在用户的Web浏览器中执行,为用户提供丰富的交互体验。...
Java垃圾回收机制是Java语言中的...综上所述,Java的垃圾回收机制是通过可达性分析来判断对象是否可回收,而Java的运行过程包括类加载、字节码验证、内存划分和解释执行等步骤。这些特性确保了程序的高效运行和安全性。
Java类的执行顺序是编程过程中一个非常重要的概念,特别是在深入理解和优化代码性能时。本文将详细探讨Java类的加载、初始化、执行等步骤,并通过实例分析阿里面试中可能涉及的相关问题,结合流程图帮助理解这一过程...
本文将详细解析Java类的基本运行顺序,包括加载、初始化、执行等阶段,以及相关工具的运用。 首先,我们从类的生命周期开始。一个Java类的生命周期可以分为以下几个阶段: 1. **加载(Loading)**:当Java虚拟机...
Java运行环境(Java Runtime Environment,简称JRE)是执行Java应用程序所必需的软件组件,它提供了执行Java字节码的虚拟机(Java Virtual Machine,JVM)以及必要的库和其他支持文件。在Java开发中,编写好的Java...
将Java项目打包成可执行软件是一项实用且关键的技能,尤其对于希望在未安装Java虚拟机(JVM)的计算机上运行应用程序的开发者而言。这一过程不仅能够提高软件的兼容性和便携性,还能增强用户体验,减少用户在安装和...
4. **Java部署技术**:如Java Web Start,允许用户通过点击链接下载并运行网络上的Java应用程序,无需安装过程。 "jre-6u12-windows-i586-p.exe" 是这个Java运行库的安装文件,针对Windows 32位(i586)系统。这个...
Java JRE 1.8,全称为Java Runtime Environment,是Oracle公司提供的用于执行Java应用程序的必备组件。它包含了Java虚拟机(JVM)、类库以及其他支持Java程序运行的必要组件。JRE 1.8是Java发展过程中的一个重要版本...
在面向过程编程中,程序员关注的是如何将问题分解为一系列可执行的步骤,并且使用数据结构来存储和处理数据。例如,在C语言这样的面向过程语言中,我们定义函数来表示过程,使用数组和结构体等数据结构来表示数据。 ...
### DB2 Java 存储过程相关知识点 #### 标题:DB2 Java 存储过程 **DB2 Java 存储过程** 主要探讨的是如何在 IBM DB2 数据库环境中利用 Java 编写存储过程。这涉及到 DB2 的一系列产品和服务,特别是与 Java 集成...
JAVA入门基础篇,适合于初学者.第一章 Java语言入门 授课内容: ...7.分析Java运行过程,再次讲解Jvm、字节码等概念 8.简单介绍JSP技术 作业: 1. 配置环境变量 2. 完成第一个Java程序的编译及运行
要使用Java编写和运行程序,首先需要正确配置Java运行环境,这通常包括安装Java Development Kit (JDK)、设置环境变量以及验证配置是否成功。本文将详细解释这个过程。 1. **Java Development Kit (JDK) 安装**: ...
Java运行时动态编译是Java语言的一个重要特性,它使得Java程序在运行过程中可以对代码进行优化和调整,极大地提高了程序的性能。这个特性主要得益于Java的Just-In-Time (JIT) 编译器,它是Java虚拟机(JVM)的一部分...
在本文中,我们将深入探讨如何在ARM架构的开发板上配置Java运行环境,以便能够成功地执行Java测试代码。ARM开发板通常用于嵌入式系统和物联网(IoT)设备,而Java是一种广泛使用的编程语言,尤其适用于这些平台。下面...
Java 入门学习的过程中,了解并设置好Java运行环境是至关重要的一步。本文将详细讲解Java运行环境的基础知识,帮助新手快速掌握Java开发环境的搭建。 首先,我们要明确开发Java需要哪些基本组件。最核心的就是Java ...
在Java中,注解通过`@AnnotationName`的形式来声明,它们本身不直接影响程序的执行,但可以用于代码的验证、编译时的检查、运行时的行为修改等。 标题中的“java简单方法顺序调用注解”是指使用注解来控制类中方法...