java代码块

在Java中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块。

(1)局部代码块:在方法中出现,限定变量的生命周期,及早释放,提高内存的利用 。

在同一个类中的同一个方法中,如果存在多个局部代码块,执行顺序是自上而下的。

(2)构造代码块:(在创建对象的时候调用)定义在类中方法外。当一个类中既存在构造代码块也存在构造方法的时候,在创建对象时,会先执行构造代码块,后执行构造方法。 无论类中有多少个构造代码块,构造代码块之间会先进行自上而下的顺序执行,然后再执行构造方法。 构造代码块 --> 构造方法

(3) 静态代码块:在类中方法外定义,并加上static修饰。 静态代码块是优先于其他代码块之前执行。在加载的时候执行,并且只执行一次。

(4)静态代码块 --> 构造代码块 --> 构造方法

eg:

class CodeBlocks{
    static {
        int e = 0;
        System.out.print(e);
    }
    CodeBlocks(){
        int c = 1;
        System.out.print(c);
    }
    {
        int g = 2;
        System.out.print(g);
    }
    static {
        int f = 3;
        System.out.print(f);
    }

}
public class CodeBlocksTest {
    CodeBlocksTest(){
        int i = 4;
        System.out.print(i);
    }
    {
        int j = 5;
        System.out.print(j);
    }
    static {
        int h = 6;
        System.out.print(h);
    }
    public static void main(String[] args) {
        {
            int a = 7;
            System.out.print(a);
        }
        {
            int b = 8;
            System.out.print(b);
        }
        CodeBlocksTest code3 = new CodeBlocksTest();
        CodeBlocks code1 = new CodeBlocks();
        {
            int d = 9;
            System.out.print(d);
        }
        CodeBlocks code2 = new CodeBlocks();
        CodeBlocksTest code4 = new CodeBlocksTest();
    }
}
//运行结果:67854032192154
class Fu {
    static {
        System.out.println("静态代码块Fu");
    }

    {
        System.out.println("构造代码块Fu");
    }

    public Fu() {
        System.out.println("构造方法Fu");
    }
}

class Zi extends Fu {
    static {
        System.out.println("静态代码块Zi");
    }

    {
        System.out.println("构造代码块Zi");
    }

    public Zi() {
        System.out.println("构造方法Zi");
    }
}

public class InheritCodeBlocksTest {
    public static void main(String[] args) {
        Zi z = new Zi();
    }
}
/*
运行结果:
静态代码块Fu
静态代码块Zi
构造代码块Fu
构造方法Fu
构造代码块Zi
构造方法Zi
 */

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值