java对象初始化顺序验证示例

 更新时间:2014年02月07日 11:19:55   作者:  
以下这段小程序对调用对象构造函数时,父类构造函数、成员变量初始化函数,以及非静态初始化块调用顺序进行验证,不考虑静态成员及静态初始化块

复制代码 代码如下:

public class Derive extends Base
{
    private Member m1 = new Member("Member 1");
    {
        System.out.println("Initial Block()");
    }

    public Derive() {
        System.out.println("Derive()");
    }

    private Member m2 = new Member("Member 2");
    private int i = getInt();

    private int getInt()
    {
        System.out.println("getInt()");
        return 2;
    }

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

class Base
{
    public Base()
    {
        System.out.println("Base()");
    }
}

class Member
{
    public Member(String m)
    {
        System.out.println("Member() "+m);
    }
}
/*程序输出:
Base()
Member()  Member 1
Initial Block()
Member()  Member 2
getInt()
Derive()
*/



得出结论如下:不考虑静态成员的初始化,调用一个对象的构造函数时,程序先调用父类的构造函数(可以通过super关键字指定父类的构造函数,否则默认调用无参的构造函数,并且需要在子类的构造函数的第一行调用),之后静态成员变量的初始化函数和静态初始化块则按照在代码当中的顺序执行,成员变量如果没有指定值的话则赋予默认值,即基本数据类型为0或false等,对象则为null;最后调用自身构造函数。

相关文章

  • Java JVM编译策略案例详解

    Java JVM编译策略案例详解

    这篇文章主要介绍了Java JVM编译策略案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • java 单例模式和工厂模式实例详解

    java 单例模式和工厂模式实例详解

    这篇文章主要介绍了Java设计模式编程中的单例模式和简单工厂模式以及实例,使用设计模式编写代码有利于团队协作时程序的维护,需要的朋友可以参考下
    2017-04-04
  • Maven依赖中scope的含义

    Maven依赖中scope的含义

    本文主要介绍了Maven依赖中scope的含义,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • @JsonSerialize注解的使用示例教程

    @JsonSerialize注解的使用示例教程

    在开发中,有时候某些字段需要特殊处理,比如我们有一个日期字段,当日期为NULL时给前端不返回NULL而返回为其他等信息,就需要自定义字段的序列化,这就是@JsonSerialize的用处,本文给大家介绍@JsonSerialize注解的使用,感兴趣的朋友一起看看吧
    2023-11-11
  • 使用Intellij IDEA查看Java源码技巧

    使用Intellij IDEA查看Java源码技巧

    这篇文章主要介绍了使用Intellij IDEA查看Java源码技巧,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Java三种IO模型原理实例详解

    Java三种IO模型原理实例详解

    这篇文章主要介绍了Java三种IO模型原理实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java 常见的限流算法详细分析并实现

    Java 常见的限流算法详细分析并实现

    大数据量高并发访问时,经常出现服务或接口面对暴涨的请求而不可用的情况,甚至引发连锁反映导致整个系统崩溃。此时你需要使用的技术手段之一就是限流,当请求达到一定的并发数或速率,就进行等待、排队、降级、拒绝服务等。限流时,常见算法是计数器、漏斗、令牌桶算法
    2022-04-04
  • 浅谈Java线程Thread之interrupt中断解析

    浅谈Java线程Thread之interrupt中断解析

    这篇文章主要介绍了Java线程Thread之interrupt中断解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Spring中的监听器SpringApplicationRunListener详解

    Spring中的监听器SpringApplicationRunListener详解

    这篇文章主要介绍了Spring中的监听器SpringApplicationRunListener详解,命名我们就可以知道它是一个监听者,分析springboot启动流程我们会发现,它其实是用来在整个启动流程中接收不同执行点事件通知的监听者,需要的朋友可以参考下
    2023-11-11
  • spring boot validation参数校验实例分析

    spring boot validation参数校验实例分析

    这篇文章主要介绍了spring boot validation参数校验,结合实例形式分析了spring boot validation进行数据有效性验证的相关操作技巧,需要的朋友可以参考下
    2019-11-11

最新评论