代码块

局部代码块:

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

构造代码块:

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

静态代码块:

 static{

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

执行顺序:

/*看下面的程序说出执行结果并阐述程序的执行流程
2.执行流程
a)首先加载main方法所在的类Test.class

b)然后执行Test类中的静态代码块,输出: Test 类的静态代码块

c)接下来执行main方法,输出: mian方法

d)创建Student对象之前,先要加载Student.class

e)然后执行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();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值