java静态代码块执行顺序学习笔记

先加载类静态代码块--再加载主方法中函数,
如果有调用其他类,先加载其他类的静态代码块,在加载其他方法,与属性

java静态代码块执行顺序学习笔记

 @Test
    public void ss() {
   {
      int x = 10;                        //限定变量的声明周期
      System.out.println(x);
   }

        Student1 s1 = new Student1();
        System.out.println("---------------");
        Student1 s2 = new Student1("张三", 23);

    }

    static {
        System.out.println("我是在主方法类中的静态代码块");
    }

}

class Student1 {
    private String name;
    private int age;

    public Student1(){
        //study();
        System.out.println("空参构造");
    }                   //空参构造

    public Student1(String name,int age) {//有参构造
        //study();
        this.name = name;
        this.age = age;
        System.out.println("有参构造");
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    {                                           //构造代码块:每创建一次对象就会执行一次,优先于构造函数执行
        //System.out.println("构造代码块");
        study();
    }

    public void study() {
        System.out.println("学生学习");
    }

    static {                                    //随着类加载而加载,且只执行一次
        System.out.println("我是静态代码块");  //作用:用来给类进行初始化,一般用来加载驱动
    }                                           //静态代码块是优先于主方法执行
}

猜你喜欢

转载自blog.51cto.com/357712148/2309029