首页 > 代码库 > 关于静态变量,静态代码块,非静态变量,构造方法中变量实例化顺序

关于静态变量,静态代码块,非静态变量,构造方法中变量实例化顺序

LuceneUtils.java

 1 import java.util.ArrayList; 2 import java.util.List; 3  4 @SuppressWarnings("unused") 5 public class LuceneUtils { 6     private String a = "string";//第四个个实例化,如果这个地方没有给a赋值那么不走这个语句(仅仅是声明). 7     private static Object o = null;//第一个实例化 8     private static int b = 1;//第二个实例化 9     private List<Object> list = new ArrayList<Object>();//第五个实例化10     static{//第三个实例化11         System.out.println("这里是静态代码块!");12     }13     public LuceneUtils(){////第六个实例化14         System.out.println("这里是构造方法!");15     }16 }17 //1.首先是静态代码块18 //先是构造方法还是先是19 //在执行构造方法之前要执行非静态的,并且是声明式赋值的.

Test.java

1 public class Test {2     public static void main(String[] args) {3         LuceneUtils luceneUtils = new LuceneUtils();4         System.out.println(luceneUtils);5     }6 }7 //new这个LuceneUtils类的对象的时候是加载到ClassLoader里面.8 //静态的有个顺序,从上到下执行.

 

关于静态变量,静态代码块,非静态变量,构造方法中变量实例化顺序