1. 问题来源

你遇到过哪些质量很高的 Java 面试? - ZO01的回答 - 知乎 https://www.zhihu.com/question/60949531/answer/579002882

2. Java 类初始化顺序

父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造函数、子类非静态变量、子类非静态代码块、子类构造函数。

2.1 初始化优先级

  • 父类 > 子类
  • 静态 > 非静态
  • 变量 > 代码块 > 构造函数

3. 代码示例

class Base {private static int VarStatic = 0; // 1static {System.out.println("Base static initialization block"); // 2}private int Var = 0; // 5{System.out.println("Base initialization block"); // 6}public Base() {System.out.println("Base constructor"); // 7}
}public class Derived extends Base {private static int VarStatic = 0; // 3static {System.out.println("Derived static initialization block"); // 4}private int Var = 0; // 8{System.out.println("Derived initialization block"); // 9}public Derived() {System.out.println("Derived constructor"); // 10}public static void main(String[] args) {Derived obj = new Derived(); // 单步调试时,4之后,会回到这行,再进入5}
}
/*
Base static initialization block
Derived static initialization block
Base initialization block
Base constructor
Derived initialization block
Derived constructor*/

4. 参考

  • 红枫忆梦:【面试题】Java程序初始化的顺序是怎样的
  • Core Java 11th Volume Ⅰ: 4.6.7 Initialization Blocks

面试题:Java类初始化顺序相关推荐

  1. 【知识总结】Java类初始化顺序说明

    微信公众号:努力编程的小猪 如有问题或建议,请公众号留言 Java类初始化顺序说明 一个类中包含如下几类东西,他们前后是有顺序关系的 静态属性:static 开头定义的属性 静态方法块: static ...

  2. (转)java类初始化顺序 - jackyrong的世界 - 博客园

    (转)java类初始化顺序 我们大家都知道,对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初始化块)>构造器.我们也可以通过 ...

  3. java类初始化顺序_Java 类的初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次 构造代码块:类中直接用{}定义,每一次创建对象时执行 执行顺序优先级:静态块,main(),构造块,构造方法 1. 构造函数 publi ...

  4. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    构造函数 public HelloA(){//构造函数} 关于构造函数,以下几点要注意: 1.对象一建立,就会调用与之相应的构造函数,也就是说,不建立对象,构造函数时不会运行的. 2.构造函数的作用是 ...

  5. Java类初始化顺序(变量赋值与静态代码块的执行时间)

    前言:最近写代码的时候经常见到见到static代码块,不由对static的执行时间产生了兴趣,进而对类初始化顺序产生了兴趣. 类从编译到执行的过程: 在使用ClassLoader将字节码转换为JVM中 ...

  6. 一文详解Java类初始化顺序

    目录 一.普通类 二.包含继承关系 三.包含接口.抽象类关系 本文将介绍三种情形下的类初始化顺序. 一.普通类 Java类:Animal.java package ztt.继承接口多态.执行顺序测试; ...

  7. java类初始化顺序-阿里笔试题

    阿里笔试题之写出程序输出结果: package com.patrick.bishi;public class TestVar {public static int k = 0;public stati ...

  8. java类初始化顺序_《To Be a Better Javaer》-- Java 基础篇 vol.2:面向对象

    Java是面向对象的高级编程语言,面向对象的特征如下: 面向对象具有抽象.封装.继承.多态等特性: 面向对象可以将复杂的业务逻辑简单化,增强代码复用性: 面向对象是一种常见的思想,比较符合人们的思考习 ...

  9. JAVA类初始化顺序总结

    类的初始化 初始化顺序 首先来看下,当一个类从main入口方法,对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序: public class ClassLoadTest {priv ...

最新文章

  1. Android基于mAppWidget实现手绘地图(四)--如何附加javadoc
  2. Symfony2学习笔记之HTTP Cache
  3. Centos7下删除virbr0网卡信息
  4. php 回调通知 连连支付_php怎么写连连支付退款
  5. win7如何为计算机添加用户名和密码,win7系统电脑,如何的设置共享,共享计算机的地用户名和密码怎样设置...
  6. postman断言之常用函数
  7. Exynos4412 内核移植(二)—— 内核编译过程分析
  8. 今天的这天晚上的飞鸽传书
  9. 机器学习--LR逻辑回归与损失函数理解
  10. 机器视觉:光源专业词汇中英文详解
  11. CmsEasy可视化编辑商城系统源码
  12. 安装服务器系统驱动加载不成功,安装windows server系统提示“无法在此驱动器上安装windows”的解决办法...
  13. 怎么在qq空间引流?QQ空间生日栏怎么引流?
  14. html 如何关闭自动填充,如何禁止浏览器自动填充
  15. String源码 spilt
  16. HDU6669 Game
  17. python建筑案例_有哪些关于 Python 在建筑中的应用和教程?
  18. 高德地图生成静态图片,显示指定经纬度的地图
  19. android 布局 缩小图片大小,三大布局的基本摆放属性总结,以及imageVIew图片摆放的缩放问题...
  20. AcWing1293. 夏洛克和他的女朋友

热门文章

  1. 「镁客·请讲」芝麻科技朱智:用线下大数据提高商家运营效率
  2. 树莓派玩转机器人学习路线网盘资料
  3. 推荐一位文字真特么有趣的程序员
  4. FPGA作业3:通过时钟产生双向移位寄存器
  5. signature=2f5f7776a12b849050f88bd5b555c78c,Topological defects in nanoporous carbon
  6. docker镜像、容器 常用命令,容器端口映射
  7. 用于电路保护的模拟隔离技术
  8. python中文对齐_Python 终端下中文字符对齐处理和编码续
  9. maven-assembly-plugin的使用
  10. Android 的自定义RadioGroup