java中static修饰符的代码的加载顺序

1:首先加载被final static 修饰的原始数据类型的数据成员(若是其他类型的对象,包括原始数据类型的类包装器,如Integer,也排在第3加载)。

2:其次加载处于static块中的代码块。

3:最后才是加载只被static修饰的数据成员。

 

测试实例:

 

package com.liu.person;

import java.util.Random;

public class TestStatic {


 public static int a = 10;


 public static final String  s1 = new String("sss");

 

 public static final String  s2 = "aaaaaaa";


 public static final int b = new Integer(20);


 public static final int c = new Random().nextInt();

 

 public static final int d = 250;

 
 static {
  a = 0;
  System.out.println("initable InitSquence");
 }

 
 public static void main(String[] args) {
  
  System.out.println(TestStatic.s1);
 }


}

 

输出:->initable InitSquence

         ->sss

 

如果改成:System.out.println(TestStatic.s2);

则输出:->aaaaaaa

 

如果改成:System.out.println(TestStatic.b);

则输出:->initable InitSquence

            ->20

 

如果改成:System.out.println(TestStatic.a);

则输出:->initable InitSquence

            ->0

 

如果改成:System.out.println(TestStatic.d);

则输出:->250

       

 

posted @ 2009-12-09 22:09  hibernate3例子  阅读(167)  评论(0编辑  收藏  举报