温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java静态代码块、构造代码块、构造方法的执行顺序是怎样的

发布时间:2022-01-25 13:38:09 来源:亿速云 阅读:171 作者:iii 栏目:编程语言

这篇“java静态代码块、构造代码块、构造方法的执行顺序是怎样的”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java静态代码块、构造代码块、构造方法的执行顺序是怎样的”文章吧。

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

本教程操作环境: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();
    }
}

java静态代码块、构造代码块、构造方法的执行顺序是怎样的

2.2 多个实例

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

java静态代码块、构造代码块、构造方法的执行顺序是怎样的

三、继承体系中的顺序

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();
    }
}

java静态代码块、构造代码块、构造方法的执行顺序是怎样的

以上就是关于“java静态代码块、构造代码块、构造方法的执行顺序是怎样的”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI