java中的代碼塊理解

代碼塊:就是用{}括起來到部分。根據應用的不同分爲4類:普通代碼塊、構造塊、靜態代碼塊、同步代碼塊。

1.普通代碼塊:定義在方法中的代碼塊。

如:


  1. publicclass Ex22 {    

  2. publicstaticvoid main(String[] args){    

  3. //      普通代碼塊  

  4.        {    

  5. int i = 3;    

  6.            System.out.println("局部變量爲 " + i);    

  7.        }    

  8. int i = 5;    

  9.        System.out.println("相對上面的  i 來說是全局的變量 " + i);    

  10.    }    

  11. }    

  12. //局部變量爲 3  

  13. //相對上面的  i 來說是全局的變量 5


2.構造塊:直接在類中編寫的代碼塊。


  1. class Demo5{    

  2.    {    

  3.        System.out.println("構造塊");    

  4.    }    

  5. public Demo5(){    

  6.        System.out.println("構造方法");    

  7.    }    

  8.    {    

  9.        System.out.println("構造方法後的構造塊");    

  10.    }    

  11. }    

  12. publicclass Ex22 {    

  13. publicstaticvoid main(String[] args){    

  14. new Demo5();    

  15. new Demo5();    

  16.    }    

  17. }    

  18. //構造塊  

  19. //構造方法後的構造塊  

  20. //構造方法  

  21. //構造塊  

  22. //構造方法後的構造塊  

  23. //構造方法  


對象被實例化一次構造塊就執行一次;

構造塊優先執行比構造方法.

3.靜態代碼塊:static 關鍵字聲明的代碼塊.


  1. class Demo5{    

  2.    {    

  3.        System.out.println("1構造塊");    

  4.    }    

  5. public Demo5(){    

  6.        System.out.println("2構造方法");    

  7.    }    

  8.    {    

  9.        System.out.println("3構造方法後的構造塊");    

  10.    }    

  11. static {    

  12.        System.out.println("4靜態代碼塊");    

  13.    }    

  14. }    

  15. publicclass Ex22 {    

  16. static {    

  17.        System.out.println("在主方法類中定義的代碼塊");    

  18.    }    

  19. publicstaticvoid main(String[] args){    

  20. new Demo5();    

  21. new Demo5();    

  22.    }    

  23. }    

  24. //在主方法類中定義的代碼塊  

  25. //4靜態代碼塊  

  26. //1構造塊  

  27. //3構造方法後的構造塊  

  28. //2構造方法  

  29. //1構造塊  

  30. //3構造方法後的構造塊  

  31. //2構造方法


主方法靜態代碼塊優先於主方法,

在普通類中靜態塊優先於構造塊,

在普通類中構造塊優先於構造方法,

靜態塊只實例化一次。


參考:http://blog.csdn.net/lichaohn/article/details/5359240

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章