代码块

来源:互联网 发布:jsp如何引入java类 编辑:程序博客网 时间:2024/05/17 02:22

局部代码块:

   让局部变量的空间尽快释放

构造代码块:

     {            }    每次创建对象时调用,先执行构造代码块然后执行构造方法。如果一个类有父类则先执行父类的构造代码块,父类构造方法,再执行子类构造代码块,子类构造方法。

静态代码块:

 static{}    在类加载时被执行,而且只被执行一次。只在第一次创建对象时被调用,再创建其他对象时不再重复调用。

执行顺序:

/*看下面的程序说出执行结果并阐述程序的执行流程2.执行流程a)首先加载main方法所在的类Test.classb)然后执行Test类中的静态代码块,输出: Test 类的静态代码块c)接下来执行main方法,输出: mian方法d)创建Student对象之前,先要加载Student.classe)然后执行Student类中的静态代码块,输出:Student 类的静态代码块 f)接下来执行main方法中创建Student对象,调用的构造方法,输出:在main方法中创建Student对象调用的g)最后执行创建Test的对象的代码,在创建Test对象时候,会为成员变量分配存储空间,并执行后面的创建Student对象的语句,输出: 在成员变量显式初始化的时候创建Student对象调用的*/

public class Student {
static {
System.out.println("Student 类的静态代码块");
}
public Student(){
System.out.println("Student 类的构造方法");
}
public Student(String methodName){
System.out.println("在"+methodName+"创建Student对象调用的");
}
}
/*提示: 1. 类只有被使用就会加载到内存中
2. 只有创建对象才会为成员变量分配存储空间*/
public class Test {
// 实例(对象)成员变量
Student s = new Student("成员变量显式初始化的时候");
// 静态代码块
static {
System.out.println("Test 类的静态代码块");
}
public static void main(String[] args) {
System.out.println("main方法");
// 创建学生对象
Student s1 = new Student("main方法中");
// 创建Test对象
Test t = new Test();
}
}

原创粉丝点击