java对像实例化 静态块,静态对象执行顺序

/** * Created by Administrator on 2017/3/6. */

/** * @author zhenghong * @date 2017-03-06-22:07 **/public class TestA {    public static void main(String []args)    {        new  B();    }}class A{    static    {        System.out.println("static A");

}

public  A()    {        System.out.println("constutor A");    }    {        System.out.println("normal A");

}}class  B extends  A{    static    {        System.out.println("static B");    }    {        System.out.println("normal B");

}    public  B()    {        System.out.println("constutor B");    }}

结果

static A
static B
normal A
constutor A
normal B
constutor B

结论,父类静态--》子类静态--》父类代码块--》父类构造函数--》子类代码块--》子类构造函数

时间: 2024-10-12 13:35:02

java对像实例化 静态块,静态对象执行顺序的相关文章

实例构造函数与静态构造函数执行顺序

一.结论: 1.实例构造函数与静态构造函数执行顺序 一.初始化顺序(依次是静态变量.静态构造函数.实例变量.实例构造函数) 二.初始化次数(静态的都只会初始化一次) 三.初始化时机(使用类引用任何静态成员之前对或者首次实例化类时会调用静态构造函数,通过静态构造函数初始化类级别的项,即静态字段.非静态的则要在创建对象的时候才初始化): 2.创建子类实例时,其所有构造函数和变量的调用顺序为: 子类静态变量初始化>子类静态构造函数>父类静态变量初始化 > 父类静态构造函数 > 父类实例变

java中try{}catch{}和finally{}的执行顺序问题

 今天我给大家讲解一下java的的错误和异常处理机制以及相关异常的执行顺序问题.如有不足的地方,欢迎批评指正~ 1.首相简单介绍一下java中的错误(Error)和异常(Exception) 错误和异常的介绍: 在java.lang软件包中有一个java.lang.Throwable类,这个类是java中所有错误和异常的超类. 在java中错误和异常的继承主要有两个: 分别为Error和Exception 这两个. Error:         是java中所有错误类的父类,就是jvm出现错误,

java基础复习一、代码块执行顺序

1 /** 2 * 代码块执行顺序的测试 3 * 执行顺序 静态代码块>main代码块>构造代码块>构造函数>普通代码块 4 * @author Administrator 5 * 6 */ 7 public class ClassDemo01 { 8 static { 9 System.out.println("这是一个静态代码块"); 10 } 11 { 12 System.out.println("这是一个构造代码块"); 13 } 1

Java中子类和父类相关方法的执行顺序

无意中看到下面一个题目,大家一起来看看最后的输出结果是什么.反正我看完之后,用IDE测试后感觉知识点得到巩固了. 1 /** 2 * 函数执行顺序测试 3 * Created by 萌小Q on 2017/5/17 0017. 4 */ 5 public class ExeSeqTest { 6 7 public static void main(String [] args){ 8 System.out.println(new B().getValue()); 9 } 10 static cl

C# 静态构造函数,静态变量执行顺序(升华版)

上篇 是基本语法基础下的执行顺序,包括继承这个维度下的执行顺序,我们可以依照的规律顺下来,下面我们看下一些摸不到头脑的情况 我们实验 一个 类中的方法 去调用另一个非继承类的情况,  先看有 静态构造函数 和没有静态构造函数执行的差别 class Program { static void Main(string[] args) { //执行顺序5 var de = new People("2"); //执行顺序6 People.Instance.OutDemo(); //执行顺序8

有继承关系的对象执行顺序,包括静态变量,静态代码块,普通变量,普通代码块,继承方法.

static最先执行,如果生成的是子类对象,则先会去父类中寻找,如果也有static变量或static代码块,则先执行父类中的. 其次再执行了父类的普通变量和普通代码块+父类的构造函数. --- >  再其次才是子类的普通变量和普通代码块+子类的构造函数. 而如果调用方法,在子类中有覆盖父类的同方法时,只执行子类的方法.而不会再使用父类被覆盖掉的. 原文地址:https://www.cnblogs.com/ukzq/p/9071423.html

java中return在Try-Catch中的执行顺序

我们知道return会结束此方法并返回指定值.以及在Try-catch-finally中无论try代码块中有没有异常finally中的代码时都会被执行的.但是如果return包含在try-catch-finally中的try或catch块中会怎样呢? 我们再做个试验: 1 static int txt(){ 2 try { 3 @SuppressWarnings("unused") 4 int a=5/0; 5 7 } catch (Exception e) { 8 System.ou

JAVA之父子类的构造函数、静态代码块等执行顺序

欢迎转载,请附出处: http://blog.csdn.net/as02446418/article/details/47092769 最近在做项目时遇到了Java构造函数,代码块的一些执行顺序方面的知识,随兴做了个实验,毕竟实践出真知嘛.遇到的问题简单说一下就是在子类A继承父类B的时候,如果在代码中 A a = new A(); 这个时候父类和子类的静态代码块和构造函数执行的先后顺序到底是怎么样的呢? 我得出的结论是 父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B

深入了解Java面向对象之程序执行顺序

Java中main方法,静态,非静态的执行顺序详解 Java程序运行时,第一件事情就是试图访问main方法,因为main相等于程序的入口,如果没有main方法,程序将无法启动,main方法更是占一个独立的线程,找到main方法后,是不是就会执行mian方法块里的第一句话呢?答案是不一定  看看下面两种最常见的情况: 第一种情况: main方法在一个具有其他方法或属性的类中: public class Test1 { public static String name; public Test1(