代码参考:http://blog.csdn.net/lzxomg/article/details/51858664
1 普通代码块
普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”
- public class CodeBlock01
- {
- public static void main(String[] args)
- {
-
- {
- int x=3;
- System.out.println("1,普通代码块内的变量x="+x);
- }
-
- int x=1;
- System.out.println("主方法内的变量x="+x);
-
- {
- int y=5;
- System.out.println("2,普通代码块内的变量y="+y);
- }
- }
- }
-
-
-
-
-
-
-
2 构造代码块
构造代码块:直接在类中定义且没有static修饰没有名字的{}代码块称为构造代码块。
构造代码块在每次创建对象时都会被调用,并且构造代码块的执行次序优先于类构造函数。
- public class CodeBlock02
- {
- {
- System.out.println("第一代码块");
- }
-
- public CodeBlock02()
- {
- System.out.println("构造方法");
- }
-
- {
- System.out.println("第二构造块");
- }
- public static void main(String[] args)
- {
- new CodeBlock02();
- new CodeBlock02();
-
- }
- }
-
-
-
-
-
-
-
-
-
-
3 静态代码块
- class Code {
- {
- System.out.println("Code的构造块");
- }
-
- static {
- System.out.println("Code的静态代码块");
- }
-
- public Code() {
- System.out.println("Code的构造方法");
- }
- }
-
- public class CodeBlock03 {
- {
- System.out.println("CodeBlock03的构造块");
- }
-
- static {
- System.out.println("CodeBlock03的静态代码块");
- }
-
- public CodeBlock03() {
- System.out.println("CodeBlock03的构造方法");
- }
-
- public static void main(String[] args) {
- System.out.println("CodeBlock03的main方法");
- new Code();
- new CodeBlock03();
- }
- }
-
-
-
-
-
-
-
-
总结:
静态成员变量或静态代码块(在编译之前)>mian方法>非静态成员变量或非静态代码块>构造方法(优先级)