常用类——代码块
代码块:在类中存在的一对大括号,根据位置和修饰符的不同会有不同的分类
普通代码块
- 在方法中出现的大括号——普通代码块/局部代码块——单纯限制作用域
- 当方法被调用的时候执行
public static void method(){
// 1.在方法中出现的大括号 -- 普通代码块 /局部代码块 --单纯限制作用域
//当方法被调用的时候执行
{
int num = 10;
System.out.println("这是一个普通代码块;"+num);
}
}
构造代码块
写在类中的代码块,创建对象–初始化对象的时候执行,先于构造方法执行
public CodeDemo(){
System.out.println("构造方法");
}
//2.构造代码快 -- 写在类当中的代码块 -- 创建对象 初始化对象的时候执行 先于构造方法执行
{
System.out.println("这是构造代码块");
}
静态代码块
写在类中的代码块,由static修饰,随着类的加载而执行,并且只会执行一次
static {
System.out.println("这是一个静态代码块");
}
同步代码块
在线程中使用,在方法内书写的代码块,由synchronized修饰
synchronized (CodeDemo.class){
System.out.println("这是一个同步代码块");
}
例子
public class CodeDemo {
//代码块 --在类中存在的一对大括号,根据位置和修饰符的不同会有不同的分类
public static void method(){
// 1.在方法中出现的大括号 -- 普通代码块 /局部代码块 --单纯限制作用域
//当方法被调用的时候执行
{
int num = 10;
System.out.println("这是一个普通代码块;"+num);
}
}
public CodeDemo(){
System.out.println("构造方法");
}
//2.构造代码快 -- 写在类当中的代码块 -- 创建对象 初始化对象的时候执行 先于构造方法执行
{
System.out.println("这是构造代码块");
}
//3.静态代码块 -- 写在类中的代码块, 由static修饰 -- 随着类的加载而执行,并且只会执行一次
static {
System.out.println("这是一个静态代码块");
}
public static void main(String[] args) {
method();
CodeDemo codeDemo = new CodeDemo();
CodeDemo codeDemo1 = new CodeDemo();
CodeDemo codeDemo2 = new CodeDemo();
//4.同步代码块 -- 在线程中使用 -- 在方法内书写的代码块,有synchronized修饰
synchronized (CodeDemo.class){
System.out.println("这是一个同步代码块");
}
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-43YNrhH1-1639208979948)(C:\Users\15092\AppData\Roaming\Typora\typora-user-images\image-20211210203509298.png)]