普通代码块:位置在方法体内,
加速内存回收, 限定变量的生命周期,及早的释放无用变量
静态代码块:位置在类中方法体外,
只加载一次,只能调用静态修饰的变量或方法
构造代码块:位置和静态代码块位置相同,
(相当于构造函数作用,但有区别)没有static修饰,作用就是当有构造函数加载时,必定先加载构造代码块里的内容(不管里面是否是构造函数),初始化的作用
同步代码块:在代码块中公用一把锁
- 同步方法
即有synchronized关键字修饰的方法
由于 Java的每个对象都会有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法,在掉用该方法前,需要获得内置锁,否则就处于阻塞状态
代码示例:
public synchronized void save(){
//方法内容
}
.同步代码块:
同步代码块使用synchronized(object){}进行修饰
被该关键字修饰的语句块会自动被加上内置锁,从而实现同步
在调用该代码块时,需要获得内置锁,否则就处于阻塞状态
代码示例:
synchronized(object){
//内容
}