代码块:以“{代码逻辑}”形式的结构代码,根据所在位置可用分为局部代码块,构造代码块,静态代码块
变量作用域(起作用的范围,存活范围):有所在的最近大括号
局部代码块:定义在方法或语句中的代码块
构造代码块:定义在类中成员位置
特点:会优先于构造函数执行,每当创建对象时都会调用一次。
作用:开发中构造代码块一般用于编写所有对象(也就是所有构造函数)都需要执行的初始化操作
静态代码块:定义在类中的成员位置,使用static修饰
语法:
static{
代码块内容
}
特点:
l 优先于所有函数(包括主函数,构造函数)当以任意形式第一次使用到该类时就会执行
l 该类不管创建多少个对象,整个程序运行期间静态代码块只会执行一次
作用:静态代码块一般用于给静态成员变量赋值,给类进行初始化(开发中一般将整个程序运行期间只会运行一次的代码都放在代码块)
单例模式:让类只能创建一个实例(对象)
设计思想:
l 定义一个当前类型的成员变量
l 将构造函数私有化
l 提供一个public
static修饰的函数,用于返回一个当前对象,在函数中判断成员变量是否为null,来决定是给变量赋值还是直接返回变量值
单例模式常见设计有两种模式:懒汉模式和饿汉模式
懒汉模式:在类加载编译时不会初始化对象,加载块,获取对象快
饿汉模式:在类加载编译时会完成初始化,加载慢,获取对象快