后續:測試類兩個測試類如下class TestMethodA { static String name = "akioss";}class TestMethodB { static final String name = "akioss";}查看字節碼通過javap指令查看兩個類的字節碼classAclass com.akioss.TestMethodA { static java.lang.String name; com.akioss.TestMethodA(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return static {}; Code: 0: ldc #2 // String akioss 2: putstatic #3 // Field name:Ljava/lang/String; 5: return }可以看到除了默認的構造方法之外,還有一個靜態代碼塊,執行了putstatic指令classBclass com.akioss.TestMethodB { static final java.lang.String name; com.akioss.TestMethodB(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return }
添加回答
舉報
0/150
提交
取消