构造代码块+局部代码块+静态代码块

●代码块

1.构造代码块:类中方法外{}
    构造代码块在构造函数之前执行
    每次创建对象时都会执行
    构造代码块就是给属性进行初始化
    {
        this.name="lili";
        this.gender='女';
        this.age=1;
        System.out.println("构造代码块");
    }

2.局部代码块:类中方法内{}
    用于限定某些变量的生命周期
    定义完一个局部变量a后,在接下来的代码中不想在用时,就没有必要让a在内存中继续占用内存,就可以使用局部代码块。
    public void test(){
        {
            int a=3;
            System.out.println("局部代码块");
        }
    }

3.静态代码块:static{}
    静态代码块存储在方法区中
    静态代码块针对的是类,对类进行初始化,也可以叫类代码块
    静态代码块随着类的加载而加载到方法区,在类创建对象或执行方法前执行,而且只执行一次
    static{
        System.out.println("静态代码块");
    }

三个代码块的执行顺序:
    a.第一个类加载,执行第一个类的静态代码块
    b.第一个类中包含第二个类作为第一个类的属性(注意是否有new)
        new:第二个类加载,执行第二个类的静态代码块
            执行第二类的类代码块
            执行第二类的构造方法
        不new:不加载第二各类
    c.执行第一个类的类代码块(注意c和b的顺序)
        b在c前:执行的顺序是a->b->c->d
        c在b前:执行的顺序是a->c->b->d
    d.执行第一个类的构造函数    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值