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 静态块只实例化一次。
四、同步代码块
同步代码块主要出现在多线程中。