代码块(Block)

目录

一、局部代码块

二、构造代码块

三、静态代码块


一、局部代码块

位置:方法中的一对大括号{}

作用:限定变量的声明周期,提早释放内存,释放内存后变量不存在。

下面是代码示例:

/**
 * @author Tweek
 */
public class BlockTest {
    /**
    *  局部代码块
    */
    public static void main(String[] args) {
      
        {
            int num=20;
            System.out.println(num);
        }
        //提前释放内存,故此时可以重新声明相同变量名的变量
        int num=30;
        System.out.println(num);
    }
}
​
控制台输出:
20
30

二、构造代码块

位置:在类中的其余方法的外部的一对大括号{}

特点:在创建对象,执行构造方法的时候,就会执行构造代码块,且优先构造方法执行。即无论有参无参,该代码块都在构造方法内。

作用:有多个构造方法中,需要重复的代码,可以将此类重复的代码抽取到构造代码块中,从而提升代码的复用性。

下面是代码示例:

/**
 * @author Tweek
 */
public class BlockTest {
    /**
         构造代码块
    */
    public static void main(String[] args) {
       Student student1 = new Student();
       Student student2 = new Student(10);
​
    }
}
class Student{
    {
        System.out.println("Have a Nice day!");
    }
    public Student() {
        System.out.println("无参构造方法");
    }
    public Student(int num){
        System.out.println("有参构造方法");
    }
}
​
控制台输出:
Have a Nice day!
无参构造方法
Have a Nice day!
有参构造方法

三、静态代码块

位置:在类中的其余方法的外部的一对大括号{}

特点:需要通过static关键字修饰,随着类的加载而加载,并且只执行一次。因为在类加载时其只生成一次字节码文件,故在生成完一次字节码文件后,其后再创建该类对象并运行时并不会再次加载static代码块。

作用:在类加载的时候做一些数据初始化的操作。尤其是在应对复杂类的对象时有用。

下面是代码示例:

/**
 * @author Tweek
 */
public class BlockTest {
    public static void main(String[] args) {
       Student student1 = new Student();
       Student student2 = new Student(10);
​
    }
}
class Student{
    /**
     * 静态代码块
     */
   static{
       System.out.println("STAAAAAATIC!");
   }
   
    {
        System.out.println("Have a Nice day!");
    }
    public Student() {
        System.out.println("无参构造方法");
    }
    public Student(int num){
        System.out.println("有参构造方法");
    }
}
​
控制台输出:
STAAAAAATIC!
Have a Nice day!
无参构造方法
Have a Nice day!
有参构造方法

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值