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
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号