java基础---代码块的分类和应用场景

1.代码块的定义:

使用{ }包裹的区域

2.分类

(1).局部代码块:
位置:在方法内部的代码块
作用:限定局部变量的作用域

class CodeBlock{
   
    public void show(){
        //局部代码块
        {
            int x=10;
            System.out.println(x);
        }
        {
            int x=20;
            System.out.println(x);
        }
    }
}

(2)构造代码块
位置:在成员位置的代码块
作用:抽取多个构造方法的共性代码,从而简化编程
执行时间:每调用一次构造方法,即每创建一个对象就执行一次,且优于构造方法之前执行

public class pratice10 {
    public static void main(String[] args) {
    //主方法创建了两次对象
        CodeBlock c1=new CodeBlock();
        CodeBlock c2=new CodeBlock(12,14);

    }
}
class CodeBlock{
    int a;
    int b;
    //构造代码块
    {
        System.out.println("我是构造代码块");
    }
    
    public CodeBlock() {
        System.out.println("我是无参构造");
    }

    public CodeBlock(int a, int b) {
        this.a = a;
        this.b = b;
        System.out.println("我是全参构造");
    }
 
}
//执行结果:
我是构造代码块
我是无参构造
我是构造代码块
我是全参构造

(3)静态代码块
位置:在成员位置,static修饰的代码块
作用:
a.初始化静态成员
b.由于在创建对象之前执行,并且只执行一次,所以通常会把预加载的代码放到静态代码块中,例如:数据库的连接,Xml,JSON等配置文件的读取
特点:无论创建多少个对象,只执行一次静态代码块
执行时机:类中的成员被访问 ,必然导致该类的静态代码块被执行

class CodeBlock{
    int a;
    int b;
    //构造代码块
    {
        System.out.println("我是构造代码块");
    }
    //静态代码块,当类被加载的时候加载,且只加载一次
    static {
        System.out.println("我是静态代码块");
     }
    public CodeBlock() {
        System.out.println("我是无参构造");
    }

    public CodeBlock(int a, int b) {
        this.a = a;
        this.b = b;
        System.out.println("我是全参构造");
    }

}
我是静态代码块
我是构造代码块
我是无参构造
我是构造代码块
我是全参构造

(4)同步代码块:多线程中使用,保证代码的原子性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值