java中的四种代码块-----转载

 1 代码块:就是用{}括起来到部分。根据应用的不同分为4类:普通代码块、构造块、静态代码块、同步代码块。
 2 1.普通代码块:定义在方法中的代码块。
 3 如:
 4 [java] view plain copy
 5 public class Ex22 {     
 6     
 7     public static void main(String[] args){     
 8 //      普通代码块     
 9         {     
10             int i = 3;     
11             System.out.println("局部变量为 " + i);     
12         }     
13         int i = 5;     
14         System.out.println("相对上面的  i 来说是全局的变量 " + i);     
15              
16     }     
17     
18          
19 }     
20 //局部变量为 3     
21 //相对上面的  i 来说是全局的变量 5   
22 2.构造块:直接在类中编写的代码块。
23 [java] view plain copy
24 class Demo5{     
25     {     
26         System.out.println("构造块");     
27     }     
28     public Demo5(){     
29         System.out.println("构造方法");     
30     }     
31     {     
32         System.out.println("构造方法后的构造块");     
33     }     
34 }     
35 public class Ex22 {     
36     
37     public static void main(String[] args){     
38         new Demo5();     
39         new Demo5();     
40          
41     }     
42     
43          
44 }     
45 //构造块     
46 //构造方法后的构造块     
47 //构造方法     
48 //构造块     
49 //构造方法后的构造块     
50 //构造方法    
51 对象被实例化一次构造块就执行一次;
52 构造块优先执行比构造方法.
53 3.静态代码块:static 关键字声明的代码块.
54 [java] view plain copy
55 class Demo5{     
56     {     
57         System.out.println("1构造块");     
58     }     
59     public Demo5(){     
60         System.out.println("2构造方法");     
61     }     
62     {     
63         System.out.println("3构造方法后的构造块");     
64     }     
65     static {     
66         System.out.println("4静态代码块");     
67     }     
68              
69 }     
70 public class Ex22 {     
71     static {     
72         System.out.println("在主方法类中定义的代码块");     
73     }     
74          
75     public static void main(String[] args){     
76         new Demo5();     
77         new Demo5();     
78          
79     }     
80     
81          
82 }     
83 //在主方法类中定义的代码块     
84 //4静态代码块     
85 //1构造块     
86 //3构造方法后的构造块     
87 //2构造方法     
88 //1构造块     
89 //3构造方法后的构造块     
90 //2构造方法   
91   
92 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/njiang/archive/2009/10/27/4735707.aspx  
93 主方法静态代码块优先于主方法,
94 在普通类中静态块优先于构造块,
95 在普通类中构造块优先于构造方法,
96 静态块只实例化一次。

四、同步代码块

  同步代码块主要出现在多线程中。
原文地址:https://www.cnblogs.com/kaililikai/p/5885406.html