Java——代码块

1、概念分类

使用 { } 定义的一段代码称为代码块,根据代码块定义的位置以及关键字,可分为以下四种

  • 普通代码块
  • 静态代码块
  • 构造代码块
  • 同步代码块

2、普通代码块

定义在 方法中 的代码块,这种用法较少见:

3、构造代码块

构造块:定义在类中的代码块(不加修饰符),也叫实例代码块

构造代码块一般用于初始化实例成员变量

 构造(实例)代码块只有在创建对象时才会被执行

 构造代码块和构造方法的执行先后顺序

4、 静态代码块

使用static定义的代码块称为静态代码块,一般用于初始化静态成员变量

 Tips:

  • 静态代码块不管生成多少个对象,其只会执行一次
  • 静态成员变量是类的属性,因此是在JVM加载类时开辟空间并初始化的
  • 如果一个类种包含多个静态代码块,在编译代码时,编译器会按照定义的先后次序依次执行(合并)

静态代码块、构造(实例)代码块、构造方法,三者之间的执行顺序:

public class Test{
    private String name;
    private int age;
    private static String className = "123";

    static{
        className = "223";
        System.out.println("静态代码块被执行~~~");
    }
    public Test() {
        System.out.println("构造方法被执行");
    }
    {
        this.name = "zhangsan";
        this.age = 18;
        System.out.println("构造代码块被执行");
    }

    public static void main(String[] args){
        Test test1 = new Test();
        System.out.println("=========");
        Test test2 = new Test();
    }
}

结果:

 tips:第二次实例化对象时,静态代码块并没有执行,因为类只会加载一次,该现象涉及到了双亲委派模型(具体请参考文章:待补充~

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值