public static int a = 1; //初始化階段賦值
public static final int b = 2; //鏈接 - 準備階段賦值 (static final 修飾下 值是固定常量不是 對象或者通過方法獲得的)
public static final Integer c = Integer.valueOf(3); //初始化階段賦值 值是由一些其他對象方法加載的,不在鏈接 - 準備賦值
public static final String d = new String("sb"); //初始化階段賦值 值是由一些其他對象方法加載的停撞,不在鏈接 - 準備賦值
public static final Double e = new Random().nextDouble(); //初始化階段賦值 值是由一些其他對象方法加載的悼瓮,不在鏈接 - 準備賦值
總結(jié):
普通的static 會在 鏈接-準備階段 初始化 賦默認值 如int =0 reference = null
在 初始化階段 賦顯示值 int i= 100 String a = "sss"
public static int a = 1; //初始化階段賦值
用static final 修飾的
如果只是普通值,不是通過類加載横堡,調(diào)用構(gòu)造器,方法等獲得道宅,就在鏈接-準備階段賦值
public static final int b = 2; //鏈接 - 準備階段賦值 (static final 修飾下 值是固定常量不是 對象或者通過方法獲得的)
如果賦值是對象等不是基礎(chǔ)類型的套么,就還在初始化階段賦值
public static final Integer c = Integer.valueOf(3); //初始化階段賦值 值是由一些其他對象方法加載的,不在鏈接 - 準備賦值
public static final String d = new String("sb"); //初始化階段賦值 值是由一些其他對象方法加載的胚泌,不在鏈接 - 準備賦值
public static final Double e = new Random().nextDouble(); //初始化階段賦值 值是由一些其他對象方法加載的肃弟,不在鏈接 - 準備賦值