- /*
- 区别:
- 1、静态代码块:它是随着类的的加载而执行,类一加载,静态代码块就会执行,并且只执行一次
- 2、构造代码块:是用于给对象进行初始化,对象一建立,构造代码块就会运行
- 3、成员代码块:是类对象在调用的类的方法的时候,才会执行。
- 4、所以静态代码块比构造代码块先执行,构造代码块比构造函数先执行,构造函数比成员代码块先执行;
- */
- class StaticCode{
- int num=1;
- //建立构造函数
- StaticCode(){
- System.out.println("third");
- }
- //建立静态代码块
- static{
- System.out.println("first");
- }
- //建立构造代码块
- {
- System.out.println("second");
- }
- //建立一个show()方法
- public static void show(){
- System.out.println("show run");
- }
- }
- class Demo1{
- public static void main(String[] args){
- StaticCode sc= new StaticCode();
- System.out.println("调用成员了……");
- sc.show();
- }
- }
-
- /*
- 输出结果:
- first
- second
- third
- 调用成员了……
- show run
- 从输出结果看到:先是静态代码块,然后是构造代码块,然后是构造函数,最后才是类的成员函数。从new一个对象
- 可以看出,对象一建立,就迅速执行了这些程序。
- */
-
复制代码 |