首页后端开发其他后端知识代码块有哪些,执行顺序是怎么样的

代码块有哪些,执行顺序是怎么样的

时间2024-03-28 08:02:03发布访客分类其他后端知识浏览383
导读:相信很多人对“代码块有哪些,执行顺序是怎么样的”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助 执行顺序是:先执行“静态代码块”,再执行“构造代码块”,最后执行“构造代码块”。静态代码块是类级别的,而构...
相信很多人对“代码块有哪些,执行顺序是怎么样的”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助


执行顺序是:先执行“静态代码块”,再执行“构造代码块”,最后执行“构造代码块”。静态代码块是类级别的,而构造代码块和构造方法是实例级别的,因而静态代码块先执行;又因构造代码块是独立的,必须依附载体才能运行,因而构造代码块需放到构造方法前。

本教程操作环境:windows7系统、java8版、DELL G3电脑。

构造代码块、静态代码块与构造方法是类中三种不同的代码块,那么他们到底有什么区别呢?

一、三种代码块简介

静态代码块:用staitc声明,jvm加载类时执行,仅执行一次

构造代码块:类中直接用{ } 定义,每一次创建对象时执行。

执行顺序优先级:静态块,main(),构造块,构造方法。

class A
{

    //构造代码块
    {
    
        System.out.println("构造代码块A");

    }

    //静态代码块
    static
    {
    
        System.out.println("静态代码块A");

    }

    //构造方法
    public A()
    {
    
        System.out.println("构造方法A");

    }

}

二、三者的执行顺序

为了弄清楚三者的执行顺序,我们对类 A 进行实例化,分别进行单个实例和多个实例的测试。

2.1 单个实例

class Demo
{

    public static void main(String[] args)
    {
    
        new A();

    }

}

2.2 多个实例

class Demo
{

    public static void main(String[] args)
    {
    
        new A();
    
        new A();
    
        new A();

    }

}

三、继承体系中的顺序

class B extends A
{

    //构造代码块
    {
    
        System.out.println("构造代码块B");

    }

    //静态代码块
    static
    {
    
        System.out.println("静态代码块B");

    }

    //构造方法
    public B()
    {
    
        System.out.println("构造方法B");

    }

}


class Demo
{

    public static void main(String[] args)
    {
    
        new B();

    }

}
    

四、总结

1、在创建一个对象的过程中,三者的执行顺序是:静态代码块 --> 构造代码块 --> 构造方法;

1.静态代码块:是在类的加载过程的第三步初始化的时候进行的,主要目的是给类变量赋予初始值。
2.构造代码块:是独立的,必须依附载体才能运行,Java会把构造代码块放到每种构造方法的前面,用于实例化一些共有的实例变量,减少代码量。
3.构造方法:用于实例化变量。

1是类级别的,2、3是实例级别的,自然1要优先23。

在就明白一点:对子类得主动使用会导致对其父类得主动使用,所以尽管实例化的是子类,但也会导致父类的初始化和实例化,且优于子类执行。

2、每创建一个对象,构造代码块和构造方法就会执行一次;而不管创建多少个对象,静态代码块仅仅只在创建第一个对象时执行一次;
3、创建子类对象时,子类的静态代码块在父类的静态代码块后面执行,但优先于父类的构造代码块和构造方法;
4、创建子类对象时,子类的构造代码块在父类的构造方法后执行。


感谢各位的阅读,以上就是“代码块有哪些,执行顺序是怎么样的”的内容了,通过以上内容的阐述,相信大家对代码块有哪些,执行顺序是怎么样的已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 代码块有哪些,执行顺序是怎么样的
本文地址: https://pptw.com/jishu/654806.html
HTML中设置背景的方法是什么,使用什么属性 怎么搞懂Java面向对象,基本特性和对象间关系是什么

游客 回复需填写必要信息