代码块

什么是代码块:在类或者在方法中,直接使用"{}"括起来的一段代码,表示一块代码区域。

 代码块里变量属于局部变量,只在自己所在区域(前后的{})内有效。 

根据代码块定义的位置的不同,我们又分成三种形式:

 1):局部代码块:直接定义在方法内部的代码块:         

一般的,我们是不会直接使用局部代码块的,只不过我们会结合if,while,for,try等关键字联合,表示一块代码区域. 

2):初始化代码块(构造代码块):直接定义在类中.    

 每次创建对象的时候都会执行初始化代码块:         每次创建对象都会调用构造器,在调用构造器之前,会先执行本类中的初始化代码块.        通过反编译之后,我们发现,初始化代码也作为构造器的最初的语句.        我们一般不使用初始化代码块的,难看,即使要做初始化操作,我们一般在构造器中做即可,如果做初始化操作的代码比较多,此时构造器的结构比较混乱,此时专门定义一个方法做初始化操作,再在构造器中调用即可.

 3):静态代码块:

使用static修饰的初始化代码块.      在主方法执行之前执行静态代码块,而且只执行一次.      main方法是程序的入口,为什么静态代码块优先于main方法执行.      --->:静态成员随着字节码的加载也加载进JVM,此时main方法还没执行,因为方法需要JVM调用.             先把字节码加载进JVM,  而后JVM再调用main方法.     一般的,我们用来做初始化操作,加载资源,加载配置文件等.

 

 

 

 

package dijiutian;

class root{

    static{

        System.out.println("fsdfsdf");

    }

    {

        System.out.println("root.....");

    }

    public root() {

        // TODO Auto-generated constructor stub

        System.out.println("root.....||||");

    }

}

class mid extends root{

    {

        System.out.println("123455");

    }

    static {

        System.out.println("6789954646545");

    }

    public mid() {

        // TODO Auto-generated constructor stub

        System.out.println("56+879+*++784fiueutrfyw");

    }

}

public class mokuaihua {

    public static void main(String[] args) {

        // TODO Auto-generated method stub

         new mid();

    }

}

 

 

结果如下

fsdfsdf

6789954646545

root.....

root.....||||

123455

56+879+*++784fiueutrfyw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值