Java代码块及其执行优先级

前言

<新手学习笔记,仅供参考>

1.执行优先级

以下以在main方法中创建两个对象为例,进行分析

单对象:静态代码块 —> 代码块 —> 构造代码块;
多对象:对象A内部代码块优先级 —> 中间穿插的代码块(普通语句) —>对象B内部代码块优先级

public class Test {
    //Test静态代码块
    static { System.out.println("Test静态代码块"); }
    //Test代码块
    { System.out.println("Test代码块(普通语句)"); }
    //Test构造代码块
    public Test(){ System.out.println("Test构造代码块"); }
    //主方法(入口)
    public static void main(String[] args) {
        A a=new A();
        System.out.println("主方法代码块(普通语句)");
        B b=new B();
    }
}

2.各代码块简述

静态代码块:

static{
	//代码内容
}

代码块:
代码块,即普通语句用{}括起来,只是由于类只包含属性和方法,因此普通语句只有被括起来才能生效,否则属于异常

{
	//代码内容
}

构造代码块:
假定所属类为Test

public Test{
	//代码内容
}

总结

1.对于单个对象,由于类本身包含“属性(变量)”和“行为(方法)”两个元素,因此不存在单独的普通语句,进而引入“代码块”实现所需功能;
2.在方法内部(包括主方法main) ,代码都是顺序执行;在此基础上,单个对象遵循其单对象内部优先级;
3.主方法层面(即,在上面的Test类中),在进入主方法main()之前,只执行所属类Test中的static代码块,其他代码(代码块、构造代码块)不会执行;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值