java 代码块_Java中的几种代码块

静态代码块:

有些代码需要在项目启动的时候就执行,就需要使用静态代码块。它是主动执行的,在项目启动的时候就初始化,也仅仅在第一次类加载的时候执行,之后不再执行

静态方法:

有些代码是在不创建对象的情况下,由其他程序来调用的,就需要使用静态方法。它是被动执行的,静态方法在类加载的时候就已经加载了,可以使用类名直接调用。

构造代码块:

直接在类中定义,但是没有加static关键字,每次初始化对象时都会调用。

1)java编译器编译java类时,会先将成员属性的声明放到类的前端

2)成员变量的初始化工作放到构造函数中

3)如果类中有构造代码块,java编译器在编译时会先将构造代码块中的代码移到构造函数中执行,构造函数中原有的代码最后执行

4)成员属性的初始化和构造代码块的执行顺序是根据原码中的位置执行

局部代码块:

在函数中的代码块,在方法中如果要缩短变量的寿命,可以使用它。

方法中,某段代码之后,都不再使用某个变量(这个变量有可能是一个很大的Map集合,很占内存),则可以将其定义到局部代码块中,及时结束其生命周期,释放空间!

public classUseNormalBlack {public static voidmain(String[] args) {newBlack().run();

}

}classBlack {public voidrun() {int num = 2;

{int i = 3;//局部代码块,变量i出了局部代码块就没有任何作用

System.out.println("这里是局部代码块" +(i));

}

System.out.println("这里是普通方法run()");

}

}

代码块的执行顺序:

静态代码块>构造代码块>构造方法,父类先于子类

父类静态代码块——>子类静态代码块——>父类构造块——>父类构造方法——>子类构造块——>子类构造方法

/*** 静态代码块>构造代码块>构造方法,父类先于子类

* 父类静态代码块——>子类静态代码块——>父类构造块——>父类构造方法——>子类构造块——>子类构造方法*/

classHelloA {publicHelloA() {

System.out.println("HelloA");

}

{

System.out.println("I,m A class 构造代码块A");

}static{

System.out.println("static A");

}

}class HelloB extendsHelloA {publicHelloB() {

System.out.println("helloB");

}

{

System.out.println("I,m B class 构造代码块B");

}static{

System.out.println("static B");

}public static voidmain(String[] args) {newHelloB();newHelloB();

{

System.out.println("我是局部代码块");

}

}

}

877b27d458352f9d86575005db91623a.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值