news 2026/5/16 0:21:20

代码块(局部代码块、构造代码块、静态代码块)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码块(局部代码块、构造代码块、静态代码块)

代码块(局部代码块、构造代码块、静态代码块)

  1. 代码块的概述
  • 在Java中,使用{}括起来的代码被称为代码块
  1. 代码块的分类
    根据位置和声明不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块
  • 局部代码块:在方法中出现,限定变量生命周期,及早释放,提高内存利用率
  • 构造代码块(初始化块):在类中方法外出现
  • 静态代码块:一般用于加载驱动
    static{}
  1. 测试代码
public class face_code_question { public static void main(String[] args) { System.out.println("我是主方法"); //创建对象 question s=new question(); question s1=new question("清杉夫人"); //主方法,在主方法类中的静态代码块执行之后执行 { System.out.println("我是局部代码块"); } } static { System.out.println("我是主方法类中的静态代码块"); //主方法类中的静态代码块优先于主方法执行 } } class question { private String name; //无参构造 public question() { System.out.println("我是无参构造"); } //有参构造 public question(String name) { this.name=name; System.out.println("我是有参构造"); } { System.out.println("我是构造代码块"); //随着对象的创建而加载,对象创建一次,构造代码块执行一次 } static { System.out.println("我是静态代码块"); //静态代码块,随着类的加载而加载,并且只执行一次 } }
  1. 运行结果
  2. 总结
  • 局部代码块:在方法中出现
  • 构造代码块:在类中方法外出现,随着对象的创建而加载,创建一次对象构造代码块执行一次
  • 静态代码块:随着类的加载而加载,并且只执行一次(一般用于加载驱动)
  • 主方法类中的静态代码块:优先于主方法执行
  1. 面试题
  • 以下代码运行后会有怎样的输出结果,为什么?
public class face_extends_question_2 { public static void main(String [] args) { Zi s=new Zi(); } } class Fu { static { System.out.println("父类 静态构造代码块"); } { System.out.println("父类 构造代码块"); } public Fu () { System.out.println("父类 构造方法"); } } class Zi extends Fu { static { System.out.println("子类 静态构造代码块"); } { System.out.println("子类 构造代码块"); } public Zi() { System.out.println("子类 构造方法"); } }
  • 运行结果

  • 分析

    • jvm调用了main方法,main方法进栈
    • 遇到zi s=new zi();会先将fu.class和zi.class分别加载近内存,在创建对象,当fu.class加载进内存
      父类的静态代码块会随着父类的加载而加载,当Zi.class加载进内存,子类中的静态代码块会随着子类的加载而加载。
    • 走子类的构造方法,因为Java中是分层初始化的,先初始化父类,在初始化子类,所以先走父类构造,但是在执行父类构造是,发现父类构造中有构造代码块,构造代码块是优先于构造方法执行的,所以打三个输出父类的构造代码块,接着输出父类的构造方法
    • 父类的构造方法初始化完成,走子类的构造方法,子类中也有优先于构造方法的构造代码块,所以先显示子类中的构造代码块,再显示子类的构造方法

    《网络安全从零到精通全套学习大礼包》

96节从入门到精通的全套视频教程免费领取

如果你也想通过学网络安全技术去帮助就业和转行,我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。

网络安全学习路线图

想要学习 网络安全,作为新手一定要先按照路线图学习方向不对,努力白费。对于从来没有接触过网络安全的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线,大家跟着这个路线图学习准没错。

配套实战项目/源码

所有视频教程所涉及的实战项目和项目源码

学习电子书籍

学习网络安全必看的书籍和文章的PDF,市面上网络安全书籍确实太多了,这些是我精选出来的

面试真题/经验

以上资料如何领取?

4045b97ae8ac36b2a650.png)

以上资料如何领取?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 0:21:17

嵌入式系统设计实战:从芯片选型到量产测试的全链路方案解析

1. 项目概述:一次嵌入式技术风向标的深度参与上周,我作为技术负责人,带着我们团队的最新成果,全程参与了在上海举办的2023国际嵌入式展。这不仅仅是一次简单的产品展示,更像是一场与整个行业脉搏同频共振的深度对话。展…

作者头像 李华
网站建设 2026/5/16 0:18:39

终极指南:在Linux系统上使用foo2zjs驱动解决打印机兼容性问题

终极指南:在Linux系统上使用foo2zjs驱动解决打印机兼容性问题 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs 在Linux系统中配置打印机驱动…

作者头像 李华
网站建设 2026/5/16 0:08:53

JavaScript PPT自动化生成终极指南:5分钟从零到专业演示文稿

JavaScript PPT自动化生成终极指南:5分钟从零到专业演示文稿 【免费下载链接】PptxGenJS Build PowerPoint presentations with JavaScript. Works with Node, React, web browsers, and more. 项目地址: https://gitcode.com/gh_mirrors/pp/PptxGenJS 还在为…

作者头像 李华
网站建设 2026/5/16 0:08:48

可观测性自动化:构建智能运维监控体系

可观测性自动化:构建智能运维监控体系 一、可观测性自动化的核心概念 1.1 可观测性的演进历程 从传统监控到现代可观测性的演进: 阶段特征技术手段第一阶段基础监控阈值告警、指标采集第二阶段日志聚合ELK栈、日志搜索第三阶段分布式追踪Jaeger、Zipkin第…

作者头像 李华
网站建设 2026/5/16 0:05:50

用STM32F103C8T6驱动Ra-01SC模组:从接线到收发数据的保姆级避坑指南

STM32F103C8T6与Ra-01SC模组实战:从硬件搭建到数据收发的完整解决方案 1. 项目准备与环境搭建 第一次接触LoRa通信时,我拿着两块Ra-01SC模组和STM32开发板,满心期待能快速实现无线数据传输。但现实很快给我上了一课——接线错误导致模组发热、…

作者头像 李华