设为首页 加入收藏

TOP

Java类的初始化顺序
2014-11-23 21:41:25 】 浏览:212
Tags:Java 初始 顺序

  我把Java类的初始化顺序分为两部分。第一部分是类的初始化,第二部分是对象的初始化。


  在初始化之前JVM必须先把该类的字节码加载到内存中来。这时不管创不创建对象都会马上执行类的初始化:


  执行静态初始化表达式(如static int a = 10)和静态初始化块(即static{}中的内容),注意两者按在源代码中的先后顺序执行。


  当创建一个对象,就会执行对象的初始化:


  首先调用父类的构造函数。


  第二步执行初始化表达式(如int a = 10)和初始化块({}中的内容),同样按在源代码中的先后顺序执行。


  最后执行自身的构造函数。


  对于静态初始化表达式与初始化表达式,如果只是声明,没有初始化,则赋默认值。如int i;则i会被赋值为0。


  总结:


  1、 类初始化


  (1) 静态初始化表达式,静态初始化块


  2、对象初始化


  (1)父类的构造函数


  (2)初始化表达式,初始化块


  (3)自身的构造函数


  注意:初始化表达式可能不是准确的术语,但明白是指什么就行了。


  测试代码:


  代码


  package principle;


  public class InitializeTest {


  public static void main(String[] args) throws ClassNotFoundException{


  System.out.println("-----类初始化-----");


  Class.forName("principle.MyClass");


  System.out.println("\n" + "-----对象初始化-----");


  MyClass myClass = new MyClass();


  }


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇理解Java类加载原理 下一篇单例模式结合观察者模式

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目