当前位置: 首页 > news >正文

父类子类静态代码块、构造代码块、构造方法执行顺序

github:https://github.com/nocoders/java-everything.git

名词解释

  1. 静态代码块java中使用static关键字修饰的代码块,每个代码块只会执行一次,JVM加载类时会执行静态代码块中的代码,静态代码块先于主方法执行。
  2. 构造代码块:直接在类中定义的代码块,没有加static关键字,在创建实例对象时先于构造方法执行。
  3. 构造方法:创建实例对象的方法

代码示例

/*** 测试 父类、子类 静态代码块、构造代码块、构造方法执行顺序** @author linmeng* @date 2023/3/1 14:42*/
public class DemoTest {public static void main(String[] args) {new Son();System.out.println("再次执行===============");new Son();}}class Parent {{System.out.println("父类构造代码块");}static {System.out.println("父类静态代码块");}public Parent() {System.out.println("父类构造方法");}}class Son extends Parent {{System.out.println("子类构造代码块");}static {System.out.println("子类静态代码块");}public Son() {System.out.println("子类构造方法");}}

执行结果:

在这里插入图片描述

总结如下:

由于静态代码块是在方法区中进行加载的,所以静态代码块的加载优先级大于对象的创建。所以父类和子类的静态代码块一定是先加载出来的。

其次,由于Java有一个分层话初始化机制,所以Java会先加载父类对象,其次再加载子类对象。

构造代码块的代码执行优先级也是大于构造方法的。所以最终的执行次序为:

父类静态代码块 - 子类静态代码块 - 父类构造代码块 - 父类构造方法 - 子类构造代码块 - 子类构造方法

参考链接

  1. Java中静态代码块、构造方法、代码块、父类与子类之间执行顺序及父类子类实例化对象
  2. Java中子类继承父类,父子类静态代码块、构造代码块以及构造方法的执行次序
  3. 父类、子类的静态代码块、构造代码块、静态变量、构造方法执行顺序加深理解

相关文章:

父类子类静态代码块、构造代码块、构造方法执行顺序

github:https://github.com/nocoders/java-everything.git 名词解释 静态代码块:java中使用static关键字修饰的代码块,每个代码块只会执行一次,JVM加载类时会执行静态代码块中的代码,静态代码块先于主方法执行。构造代码块&#…...

【C++】开散列实现unordered_map与unordered_set的封装

本文主要介绍unordered_map与unordered_set的封装,此次封装主要用上文所说到的开散列,通过开散列的一些改造来实现unordered_map与unordered_set的封装 文章目录一、模板参数二、string的特化三、正向迭代器四、构造与析构五、[]的实现六、unordered_map的实现七、u…...

华为OD机试真题Python实现【删除指定目录】真题+解题思路+代码(20222023)

删除指定目录 题目 某文件系统中有 N 个目录, 每个目录都一个独一无二的 ID。 每个目录只有一个付目录, 但每个目录下可以有零个或多个子目录, 目录结构呈树状结构。 假设 根目录的 ID 为0,且根目录没有父目录 ID 用唯一的正整数表示,并统一编号 现给定目录 ID 和其付目…...

CSS选择器大全(上)

基础选择器: id选择器:#id{} 类选择器: .class{} 标签选择器: h1{} 复合选择器: 交集选择器:作用:选中同时符合多个条件的元素 语法:选择器1选择器2选择器3选择器n{} 注意&#xff…...

JavaScript 俄罗斯方块 - setTimeout和rAF

本节内容需要有些基础知识,如进程和线程,队列数据结构 一、setTimeout和setInterval 只要使用过JavaScript的朋友,对setTimeout和setInterval应该不会默生,如果光说怎样去使用这个API,并不难,无非就是隔多少毫秒再执行某个函数,把变化的内容封装在函数中,就可以制作出动…...

LeetCode:构造最大二叉树;使用中序和后序数组构造二叉树;使用前序和中序数组遍历二叉树。

构造二叉树最好都是使用前序遍历;中左右的顺序。 654. 最大二叉树 中等 636 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建…...

nodejs实现jwt

jwt是json web token的简称,本文介绍它的原理,最后后端用nodejs自己实现如何为客户端生成令牌token和校验token 1.为什么需要会话管理 我们用nodejs为前端或者其他服务提供resful接口时,http协议他是一个无状态的协议,有时候我们…...

结构体占用内存大小如何确定?-->结构体字节对齐 | C语言

目录 一、什么是结构体 二、为什么需要结构体 三、结构体的字节对齐 3.1、示例1 3.2、示例2 3.3、示例3 3.4、示例4 3.5、示例5 四、结构体字节对齐总结 一、什么是结构体 结构体是将不同类型的数据按照一定的功能需 求进行整体封装,封装的数据类型与大小均…...

Vue和Uniapp:优缺点比较

Vue和Uniapp是两个流行的前端框架,都是用于开发跨平台应用程序的工具。虽然两者都有很多相似之处,但它们也有一些不同之处,这些不同之处可以影响你的选择。下面将对Vue和Uniapp的优缺点进行比较和分析,以帮助你做出更明智的决策。…...

AMBA-AXI(二)AXI的序,保序与乱序

💡Note:本文是根据AXI协议IHI0022F_b_amba_axi_protocol_spec.pdf(issue F)整理的。主要是分享AXI3.0和4.0部分。如果内容有问题请大家在评论区中指出,有补充或者疑问也可以发在评论区,互相学习&#x1f64…...

APIs and Open Interface--非工单领、发料(含调拨)

表名 MTL_TRANSACTIONS_INTERFACEMTL_TRANSACTION_LOTS_INTERFACE序列 MTL_MATERIAL_TRANSACTIONS_S.NEXTVALAPIs INV_TXN_MANAGER_PUB.PROCESS_TRANSACTIONS案例 杂发/杂收(代码)Declare v_user_id number : fnd_global.user_id; v_login_id number …...

互联网医院系统软件开发|互联网医院管理系统开发的好处

互联网医院一直是现在的热门行业,很多的医院已经开发了互联网医院,并且已经在良好的运行中,而有一些医院和企业正在开发中,或者打算开发互联网医院系统,其实这些企业和医院还是很有远见的,因为他们知道并了…...

2.单例模式

基本概念 单例模式:保证一个类只有一个实例,并提供一个访问该实例的全局访问点 常见应用场景 读取配置文件的类一般设计为单例模式网站计数器应用程序的日志应用,因为共享日志文件一直处于打开状态,只能有一个实例去操作Spring…...

【保姆级】Java后端查询数据库结果导出xlsx文件+打印xlsx表格

目录前言一、需求一:数据库查询的数据导出成Excel表格1.1 Vue前端实现导出按钮点击事件1.2 后端根据数据库查询结果生成xlsx文件二、需求二:对生成的xlsx文件调用打印机打印2.1 Vue前端实现按钮事件2.2 后端实现打印前言 最近在弄一个需求,需…...

Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)

文章目录1 JDBC(Java Database Connectivity)1.1 什么是 JDBC?1.2 JDBC 核心思想2 JDBC开发步骤【重点】2.0 环境准备2.1 注册数据库驱动2.2 获取数据库的连接2.3 获取数据库操作对象Statement2.4 通过Statement对象执行SQL语句2.5 处理返回结…...

vue3生命周期

一、Vue3中的生命周期 1、setup() : 开始创建组件之前,在 beforeCreate 和 created 之前执行,创建的是 data 和 method 2、onBeforeMount() : 组件挂载到节点上之前执行的函数; 3、onMounted() : 组件挂载完成后执行的函数; 4、…...

Python学习笔记10:开箱即用

开箱即用 模块 python系统路径 import sys, pprint pprint.pprint(sys.path) [,D:\\Program Files\\Python\\Lib\\idlelib,D:\\Program Files\\Python\\python310.zip,D:\\Program Files\\Python\\DLLs,D:\\Program Files\\Python\\lib,D:\\Program Files\\Python,D:\\Progr…...

详解JAVA反射

目录 1.概述 2.获取Class对象 3.API 3.1.实例化对象 3.2.方法 3.3.属性 1.概述 反射,JAVA提供的一种在运行时获取类的信息并动态操作类的能力。JAVA反射允许我们在运行时获取类的属性、方法、构造函数等信息,并能够动态地操作它们。 2.获取Class…...

在nestjs中进行typeorm cli迁移(migration)的配置

在nestjs中进行typeorm cli迁移(migration)的配置 在学习nestjs过程中发现typeorm的迁移配置十分麻烦,似乎许多方法都是旧版本的配置,无法直接使用. 花了挺长时间总算解决了这个配置问题. db.config.ts 先创建db.config.ts, 该文件export了两个对象,其…...

前端工程构建问题汇总

1.less less-loader安装失败问题 npm install less-loader --save --legacy-peer-deps 加上–legacy-peer-deps就可以了 在NPM v7中,现在默认安装peerDependencies,这会导致版本冲突,从而中断安装过程。 –legacy-peer-deps标志是在v7中引…...

终极Windows网络测速神器:iperf3-win-builds让你的网速测试变得简单快速

终极Windows网络测速神器:iperf3-win-builds让你的网速测试变得简单快速 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds 想要精准测试你…...

5分钟搞定QQ群数据采集:零基础也能掌握的自动化神器

5分钟搞定QQ群数据采集:零基础也能掌握的自动化神器 【免费下载链接】QQ-Groups-Spider QQ Groups Spider(QQ 群爬虫) 项目地址: https://gitcode.com/gh_mirrors/qq/QQ-Groups-Spider 还在为手动收集QQ群信息而头疼吗?每天…...

机器视觉项目中的GRR和CPK

在机器视觉项目中,GRR 和 Cpk 是两个核心的统计学指标,分别用于评估测量系统本身是否可靠以及生产过程是否稳定受控。下面分别详细解释。---一、GRR(量具重复性与再现性)1.1 是什么?GRR(Gauge Repeatabilit…...

Syzygy-of-Thoughts:用代数几何思想提升大语言模型推理能力

1. 项目概述:当大语言模型遇上代数几何如果你最近在折腾大语言模型(LLM)的推理能力提升,大概率听说过“思维链”(Chain of Thought, CoT)和“自洽性”(Self-Consistency, CoT-SC)这些…...

ElevenLabs IVR语音制作避坑手册(2024最新版):92%开发者踩过的5类语音延迟/断连/语义失准陷阱

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs IVR语音制作避坑手册导论 在构建高可用、高自然度的智能语音应答(IVR)系统时,ElevenLabs 以其超拟真语音合成能力成为热门选择。然而,其 API …...

yargs单元测试终极指南:使用mocha测试CLI命令的完整实践

yargs单元测试终极指南:使用mocha测试CLI命令的完整实践 【免费下载链接】yargs yargs the modern, pirate-themed successor to optimist. 项目地址: https://gitcode.com/gh_mirrors/ya/yargs yargs是一款功能强大的现代命令行参数解析工具,为…...

【花雕学编程】Arduino动手做(252)---ESP32-S3-RGB-LED矩阵开发板之全屏循环显示七种颜色

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的…...

苹果果梗检测数据集VOC+YOLO格式1141张2类别有增强

注意数据集大约450张是原图剩余均为增强生成图片数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1141标注数量(xml文件个数):1141…...

终极指南:如何永久免费使用Cursor Pro AI编程神器

终极指南:如何永久免费使用Cursor Pro AI编程神器 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial r…...

AI研究代理基准测试工具autoresearch-adal:自动化对比AdaL与Claude Code

1. 项目概述与核心价值如果你和我一样,经常在多个AI研究工具之间切换,试图找出哪个模型在解决复杂的、需要多步推理的研究任务上更胜一筹,那么你肯定体会过那种繁琐和低效。手动设置不同的API环境、编写重复的测试脚本、整理散落在各处的输出…...