Java类的成员初始化顺序

2017-06-01

代码:

public class InitializeSequence
{
public static void main(String[] args)
{
new Son();
}
} class Father {
static {
System.out.println("1 父类静态代码块初始化");
}
{
System.out.println("5 父类代码块初始化");
} private static String s = print("2 父类静态实例");
private String s1=print("6 父类实例"); public static String print(String msg) {
System.out.println(msg);
return "父类静态成员变量的初始化";
} public Father() {
System.out.println("7 父类无参构造函数初始化");
}
} class Son extends Father {
static {
System.out.println("3 子类静态代码块初始化");
}
{
System.out.println("8 子类代码块初始化");
} private static String s = print("4 子类静态实例");
private String s1=print("9 子类实例"); public static String print(String msg) {
System.out.println(msg);
return "子类静态成员变量的初始化";
} public Son() {
System.out.println("10子类构造函数初始化");
}
}

结果:

1 父类静态代码块初始化
2 父类静态实例
3 子类静态代码块初始化
4 子类静态实例
5 父类代码块初始化
6 父类实例
7 父类无参构造函数初始化
8 子类代码块初始化
9 子类实例
10子类构造函数初始化

总结:

1 先静态成员,后实例成员
2 先父类,后子类
3 先实例成员,后构造函数

对比:c#类的成员初始化顺序

Java类的成员初始化顺序的更多相关文章

  1. java类的成员初始化顺序和初始化块知识

    java类的成员初始化顺序和初始化块知识 转自:http://blog.csdn.net/lgfeng218/article/details/7606735 属性.方法.构造方法和自由块都是类中的成员 ...

  2. Java 类的成员初始化顺序

    做个简单笔录,就当是重温下基础知识. 1.先看代码: package com.test; public class Test { public static void main(String[] ar ...

  3. Java中的成员初始化顺序和内存分配过程

    Java中的成员初始化顺序和内存分配过程 原帖是这样描述的: http://java.dzone.com/articles/java-object-initialization?utm_source= ...

  4. C#类的成员初始化顺序

    首先我们来看看引用类型的成员初始化过程 我们来看一个例子吧 class Program {     static void Main(string[] args)     {         Driv ...

  5. 11.c#类的成员初始化顺序

    转自http://www.cnblogs.com/siceblue/archive/2009/01/15/1376430.html C#作为一种纯面向对象的话言,为它编写的整个代码里面到处都离不开对象 ...

  6. Java类的变量初始化顺序

    大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台 ...

  7. java类中元素初始化顺序

    结论:对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初始化块)>构造器. public class Test4 { @Tes ...

  8. java类及实例初始化顺序

    1.静态变量.静态代码块初始化顺序级别一致,谁在前,就先初始化谁.从上而下初始化(只在类加载时,初始化一次) 2.非静态变量.非静态代码块初始化顺序级别一致,谁在前,就先初始化谁.从上而下初始化(只要 ...

  9. java类对象的初始化顺序

    在下面这个例子中,我们分别在父类和子类中测试了静态代码块.普通代码块.静态成员变量.普通成员变量.构造器.静态内部类. 一:代码块及变量测试 class Field{ public static St ...

随机推荐

  1. Spring异常解决 java.lang.NullPointerException,配置spring管理hibernate时出错

    @Repository public class SysUerCDAO { @Autowired private Hibernate_Credit hibernate_credit; /** * 根据 ...

  2. 【MyBatis】MyBatis之别名typeAliases标签的使用

    <configuration> <typeAliases> <typeAlias alias="Dept" type="cn.xdl.ent ...

  3. 【Spring】SpringMVC非注解配置的两种方式

    目录结构: contents structure [+] SpringMVC是什么 Spring MVC的设计原理 SpringMVC配置的第一种方式 1,复制Jar包 2,Web.xml文件 3,M ...

  4. Spark技术栈

  5. 利用 T-sql 的从句 for xml path('') 实现多行合并到一行, 并带有分隔符

    T-sql 有一个for xml path('')的从句能把多行结果合并到一行,并成为xml 格式 比如有一张表tb有两列,其格式和数据为: id value—————1 aa1 bb2 aaa2 b ...

  6. Activity 变成对话框,然后再隐藏?

    由于继续需要做一些无感操控的工作,之前也记录了下利用悬浮窗的方法.今天突然发现原来activity可以直接嗯嗯嗯啊. 首先我在AndroidManifest里给activity添加了如下一行: and ...

  7. 重新认识Javascript的一些误区总结

    1.在函数内有没有var真的不一样 下面这样一段代码,在函数abc()中,创建了两个变量a, c,并在函数体之外进行alert,想看看有什么事发生: <script> function a ...

  8. 使用 sqlyog 导入导出数据显示 lost connection to mysql server during query

    mysql中经常需要备份数据,在使用 sqlyog 进行备份数据库为转储文件,然后在其他数据库中导入发生 lost connection 经过查询大量资料是数据库配置的 max_allowed_pac ...

  9. django admin 导出数据简单示例

    借鉴博客:https://www.lijinlong.cc/django/djxs/2101.html 具体代码实现: class TipReport(admin.ModelAdmin): actio ...

  10. 使用vlc实现视频TS流的推送

    鉴于Mpeg TS流播放的需求,使用 VLC作为Server来实现输出Mpeg TS    本文仅涉及如何使用VLC的Command来实现作为视频流Server通常可以使用下述四种方式来推送Mpeg ...