JAVA对象创建代码调用顺序

原创 2016年05月31日 20:57:57

JAVA对象创建代码调用顺序

JAVA中初始化对象有多种方法:静态代码块、数据直接初始化、非静态代码块、构造器等。JVM创建一个新的对象有一个调用顺序。
看如下代码:

//Father类
public class Father {
    String A = "这是Father的数据初始化";
    {
        System.out.println(A);
        System.out.println("这是Father非静态块");
    }
    static{
        System.out.println("这是Father静态块");
    }
    public Father(){
        System.out.println("这是Father的构造器");
    }
}
//Son类继承Father
public class Son extends Father{
    static String B = "这是Son的静态数据初始化";
    String C = "这是Son的数据初始化";
    {
        System.out.println("这是Son非静态块");
    }
    static{
        System.out.println(B);
        System.out.println("这是Son静态块");
    }
    public Son(){
        System.out.println("这是Son的构造器");
    }
}
//主函数创建类
public class Main {
    public static void main(String args[]){
        Son aSon = new Son();
    }
}

输出结果如下:

这是Father静态块
这是Son的静态数据初始化
这是Son静态块
这是Father的数据初始化
这是Father非静态块
这是Father的构造器
这是Son非静态块
这是Son的构造器

可以得出结论,代码调用顺序为:

  1. 先父后子,所有静态块先加载;
  2. 在相应静态/非静态初始化中按照顺序:数据初始化->代码块(static/nonstatic)->构造器(nonstatic)。
版权声明:本文为博主原创文章,未经博主允许不得转载。

Java中创建对象的时候代码执行顺序

在Java中,创建一个对象,到底代码执行顺序是什么样子的。通过编写一个类,测试一下就知道了。 1、首先测试一个直接从Object继承的类。 public class Parent {     p...

Java中代码块介绍以及加载类和创建对象的执行顺序

在Java面向对象的内容中, 会引出代码块的相关概念. 在这里, 我总结了代码块的概述和分类情况以及区别.(个人感觉, 面试的时候可能会问, 但在开发中不用或者很少用, 不过, 理解相关原理更为重要!...

java创建对象时代码执行顺序探讨

没有继承父类情况下,在创建对象时候相关代码的执行顺序: 静态代码块/静态成员变量 > 构造代码块/成员变量 > 构造方法 ,对于同一级别的部分按照顺序从前往后执行,下面举例说明 以下是class...
  • mzbonnt
  • mzbonnt
  • 2016年03月15日 21:29
  • 1976

java对象实例化过程中的代码执行顺序

java对象实例化过程中的代码执行顺序1、执行顺序(1)执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容; (2)子类的静态内容执行完毕之后,初始化父类的成员变量--->执行父...

Java中静态代码块及对象的初始化顺序

class Parent{      static String name = "hello";      {          System.out.println("parent  b...

java中类/对象的初始化顺序以及静态代码块的使用

java中类/对象的初始化顺序以及静态代码块的使用  一、对象的初始化顺序:(java类加载器加载类的顺序:http://blog.csdn.net/crazycoder2010/article/d...

JAVA中静态代码块及对象的初始化顺序

Java中静态代码块及对象的初始化顺序。

Java中初始化对象的顺序,静态代码块的用法以及Static的用法详解

(一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他...
  • dq3wrr
  • dq3wrr
  • 2014年09月21日 10:41
  • 1545

java中类/对象的初始化顺序以及静态代码块的使用

一、对象的初始化顺序:(java类加载器加载类的顺序:) (1)加载父类(以下序号相同,表明初始化是按代码从上到下的顺序来的)   1.为父类的静态属性分配空间并赋于初值   1.执...

关于java中子类,父类中,静态代码块: staic{},动态代码块:{},构造方法,类属性,对象属性等执行顺序做个总结:

关于java中子类,父类中,静态代码块: staic{},动态代码块:{},构造方法,类属性,对象属性等执行顺序做个总结:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA对象创建代码调用顺序
举报原因:
原因补充:

(最多只允许输入30个字)