Java 类初始化顺序

标签: java 初始 化顺 | 发表时间:2014-09-26 16:59 | 作者:wechasing
出处:http://www.iteye.com

 

  对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是

1.(静态变量、静态初始化块)注:这两个的初始化顺序为在类中先后出现的顺序。>

2(变量、初始化块)注:这两个的初始化顺序为在类中先后出现的顺序。>

3 构造器。 

 我们也可以通过下面的测试代码来验证这一点:

 

public class InitialOrder {
	  // 静态变量
	public static String staticField = "静态变量";
    // 变量
    public String field = "变量";
    // 静态初始化块
    static {
       System.out.println(staticField);
       System.out.println("静态初始化块");
    }
    // 初始化块
    {
       System.out.println(field);
       System.out.println("初始化块"); 
    }
    // 构造器
    public InitialOrder() {
      System.out.println("构造器");
    }
    public static void main(String[] args) {
         new InitialOrder();
    }
  
}

 

 输出结果为:

                     静态变量
                     静态初始化块
                     变量
                     初始化块
                     构造器



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [java 初始 化顺] 推荐:

Java 类初始化顺序

- - Java - 编程语言 - ITeye博客
  对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是. 1.(静态变量、静态初始化块)注:这两个的初始化顺序为在类中先后出现的顺序. 2(变量、初始化块)注:这两个的初始化顺序为在类中先后出现的顺序.  我们也可以通过下面的测试代码来验证这一点:. public static String staticField = "静态变量";.

java 类和对象的初始化

- - Web前端 - ITeye博客
  在Java中,类装载器把java类装载到虚拟机中,经过装载,链接和初始化三个步骤来完成. 其中链接中包括 校验、准备和解析. 下面对这些概念进行解析:. 装载:查找和导入类或接口的二进制数据,常用的是根据类的路径加载,还有根据网络的地址加载. 链接:执行校验、准备和解析步骤,其中解析步骤是可以选择的;.

java中一个对象的初始化过程

- - CSDN博客编程语言推荐文章
/* 该类演示了一个对象的初始化过程 */ class Person {. //堆内存默认初始化为null. private static String country="中国"; //静态属性,存在于方法区,随着类的加载而加载. System.out.println("静态代码块执行");. System.out.println("构造代码块执行");.

来说说Java中的实例初始化器

- - ImportNew
文首先给出个例子来探究下什么是 实例变量初始化器,什么是 实例初始化器,以及什么是 静态初始化器. 然后看看实例初始化器是怎么工作的. 先看看下面这段代码,你觉着哪部分会先被执行呢. //instance variable initializer 实例变量初始化器. //constructor 构造函数.

java类加载中不会触发初始化的被动引用

- - Java - 编程语言 - ITeye博客
我们知道,在初始化一个类时,如果它的父类没有进行初始化,那么JVM就会触发其父类的初始化动作. 但是,当我们引用类的时候,可不一定会触发其初始化,这种引用类的方式称为被动引用. 可是没有竟然没有对Child类进行初始化. 这是因为val为静态字段,只有直接定义这个字段的类才会被初始化,故通过子类来引用父类静态字段val,只会触发Father类的初始化,而不会触发Child类的初始化,so 就没有Child类的事.

Java中的锁(Locks in Java)

- - 并发编程网 - ifeve.com
原文链接 作者:Jakob Jenkov 译者:申章 校对:丁一. 锁像synchronized同步块一样,是一种线程同步机制,但比Java中的synchronized同步块更复杂. 因为锁(以及其它更高级的线程同步机制)是由synchronized同步块的方式实现的,所以我们还不能完全摆脱synchronized关键字( 译者注:这说的是Java 5之前的情况).

Java PaaS 对决

- 呆瓜 - IBM developerWorks 中国 : 文档库
本文为 Java 开发人员比较了三种主要的 Platform as a Service (PaaS) 产品:Google App Engine for Java、Amazon Elastic Beanstalk 和 CloudBees RUN@Cloud. 它分析了每种服务独特的技术方法、优点以及缺点,而且还讨论了常见的解决方法.

Java浮点数

- d0ngd0ng - 译言-电脑/网络/数码科技
Thomas Wang, 2000年3月. Java浮点数的定义大体上遵守了二进制浮点运算标准(即IEEE 754标准). IEEE 754标准提供了浮点数无穷,负无穷,负零和非数字(Not a number,简称NaN)的定义. 在Java开发方面,这些东西经常被多数程序员混淆. 在本文中,我们将讨论计算这些特殊的浮点数相关的结果.

Qt——转战Java?

- - 博客 - 伯乐在线
编者按:事实上,在跨平台开发方面,Qt仍是最好的工具之一,无可厚非,但Qt目前没有得到任何主流移动操作系统的正式支持. 诺基亚的未来计划,定位非常模糊,这也是令很多第三方开发者感到失望,因此将导致诺基亚屡遭失败的原因. Qt的主要开发者之一Mirko Boehm在博客上强烈讽刺Nokia裁了Qt部门的决定,称其为“绝望之举”,而非“策略变更”.

java 验证码

- - ITeye博客
// 创建字体,字体的大小应该根据图片的高度来定. // 随机产生160条干扰线,使图象中的认证码不易被其它程序探测到. // randomCode用于保存随机产生的验证码,以便用户登录后进行验证. // 随机产生codeCount数字的验证码. // 得到随机产生的验证码数字. // 产生随机的颜色分量来构造颜色值,这样输出的每位数字的颜色值都将不同.