定义:被“{}”包括的代码片段,使代码具备独立性,一般用于实现特定算法;
分类:普通代码块、静态代码块、同步代码块、构造代码块;
普通代码块
一般方法中的代码块,必须紧跟方法名后,并且使用方法名调用;
普通代码块静态代码块
static修饰的代码块,一般用于类加载时的静态属性初始化;
静态代码块同步代码块
synchronized 关键字修饰的代码块,表示同一时间只能有一个线程进入到该方法块中,是一种多线程保护机制;
构造代码块
1.构造代码块和构造函数一样同样是在生成一个对象时被调用,调用顺序在构造函数之前但需依托构造函数;
2.编译器会将代码块按照他们的顺序(假如有多个代码块)插入到所有的构造函数的最前端,这样就能保证不管调用 哪个构造函数都会执行所有的构造代码块;
基于此特性,有如下应用场景:
1.多个构造函数均须初始化实例变量时,可以使用代码块减少重复代码;
2.当某个对象需要在适当的环境才能存在的情况,可以用代码块来创建;
构造代码块执行顺序
静态代码块 > 构造代码块 > 构造函数
执行顺序
网友评论