java_自由塊(靜態塊和非靜態塊)


java中的自由塊分為兩種:

靜態塊和非靜態塊

靜態塊:

1 public class Test {
2     static int x = 10;
3     //靜態塊:靜態塊的執行時機是在class文件裝載的時候;靜態塊只會執行一次
4     //多個靜態塊的時候,按出現順序執行
5     static{
6         x+=5;
7     }
8 }

非靜態塊:

1 public class Test {
2     //非靜態塊:每次初始化一個對象,都會導致一次非靜態塊的執行;在構造函數執行之前執行
3     //繼承關系:父類的非靜態塊->父類的構造函數->自己的自由塊->自己的構造函數
4     {
5         System.out.println("before");
6     }
7 }

測試demo:

 1 public class Test {
 2 
 3     static int x = 10;
 4     //靜態塊:靜態塊的執行時機是在class文件裝載的時候;靜態塊只會執行一次
 5     //多個靜態塊的時候,按出現順序執行
 6     static{
 7         x+=5;
 8     }
 9     public static void main(String[] args) {
10         new Test();
11         System.out.println(x);
12     }
13     //靜態塊
14     static {
15         x/=3;
16     }
17     public Test(){
18         System.out.println("構造函數");
19     }
20     //非靜態塊:每次初始化一個對象,都會導致一次非靜態塊的執行;在構造函數執行之前執行
21     //繼承關系:父類的非靜態塊->父類的構造函數->自己的自由塊->自己的構造函數
22     {
23         System.out.println("before");
24     }
25 }

控制台輸出:

before
構造函數
5

更多信息:java自由塊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM