黑马程序员技术交流社区

标题: 记录面向对象第三天_代码块 [打印本页]

作者: xiaobokk    时间: 2016-8-2 22:19
标题: 记录面向对象第三天_代码块
一.代码块   代码块的概述: 在java中,用{}括起来的代码称为代码块
   代码块的分类: 局部代码块;
                          构造代码块;
                          静态代码块;
                          同步代码块(多线程讲解)
   常见代码块的应用:
                          局部代码块:
                                            位于方法中,用于限定变量声明周期,提高内存的使用效率
                          构造代码块:
                                           在类中方法外出现,多个构造函数中相同的代码块,可以提取出来,每次调用构造方法都会执行,在构造方法之前执行.
                                           通过反编译可以发现,构造代码块直接复制到了构造方法中了.
                          静态代码块:
                                           在类中方法外出现,并加上了static修饰,用于给类进行初始化,在类加载的时候就执行,且执行一次

[Java] 纯文本查看 复制代码
class Swap {
        static {
                System.out.println("Swap静态代码块");
        }
       
        public static void main(String[] args) {
                System.out.println("main方法");
               
                Student s1 = new Student();
                Student s2 = new Student();
        }
}

class Student {
        static {
                System.out.println("Student 静态代码块");
        }
       
        {
                System.out.println("Student 构造代码块");
        }
       
        public Student() {
                System.out.println("Student 构造方法");
        }
}
       
               


代码块的执行顺序:  有main函数的静态代码块 --> main函数 --> Student静态代码块 -->Student构造代码块 -->Student构造方法
                             在后面创建Student对象的时候,Student静态代码块不在执行,直接执行Student构造代码块,然后是Student的构造方法

代码块执行顺序.png (11.83 KB, 下载次数: 8)

代码块的执行顺序

代码块的执行顺序





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2