千家信息网

Java静态块、自由块及构造函数的执行顺序是什么

发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,今天小编给大家分享一下Java静态块、自由块及构造函数的执行顺序是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所
千家信息网最后更新 2025年11月12日Java静态块、自由块及构造函数的执行顺序是什么

今天小编给大家分享一下Java静态块、自由块及构造函数的执行顺序是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

静态块格式:
static
{
}
静态块在类被加载的时候执行,又因为加载子类时,会预先加载父类,因此父类中如果有静态块,则最先执行。然后立即执行子类的静态块。
如果一个类中有多个静态块,则按照编码的先后顺序执行。
注:由于类只会被加载一次,因此每个静态块便只会执行一次。
自由块格式:
{
}
自由块在类被实例化时执行。
如果要实例化一个子类,那么他的构造函数会先实例化其父类。因此父类的自由块会先被执行,然后开始构造父类。父类的构造器执行完毕后,操作权返回给子类的构造器,此时开始执行子类的自由块。
然后开始构造子类。

以下为融合了父类静态块、子类静态块,父类自由块、子类自由块,父类构造函数、子类构造函数,this关键字、super关键字的一个例子,感觉很值得分析,值得记录。

[java] view
plaincopy

  1. package com.lsky.test;


  2. public class Father {

  3. private int sum;

  4. //父类中的静态块

  5. static{

  6. System.out.println("2010年新年快乐");

  7. }

  8. public void first(int i){

  9. sum=++i+sum++-1+i--;

  10. System.out.println(sum);

  11. }

  12. //父类无参构造器

  13. public Father(){

  14. System.out.println("美好的一天");

  15. }

  16. //含参数构造器

  17. public Father(String s){

  18. System.out.println("我们是学生");

  19. }

  20. //父类中的自由块

  21. {

  22. System.out.println("菩提本无树,明镜亦非台,本来无一物,何处惹尘埃");

  23. }

  24. }


  25. package com.lsky.test;


  26. public class Son extends Father {

  27. private int sum;

  28. private static Father father;

  29. //子类中含参构造器(含参构造函数)

  30. public Son(Father father){

  31. this();

  32. father.first(8);

  33. }

  34. //子类中无参构造器(无参构造函数)

  35. public Son(){


  36. this.punk(6);

  37. }

  38. public void first(int i){

  39. sum=sum+i++;

  40. System.out.println(sum);

  41. }

  42. //子类中的静态块

  43. static{

  44. Father f=new Son();

  45. f.first(4);

  46. }

  47. int punk(int sum){

  48. sum=sum;

  49. return sum;

  50. }

  51. //子类中的自由块

  52. {

  53. System.out.println("曾经沧海难为水,除却巫山不是云");

  54. }

  55. public static void main(String argsp[]){


  56. Son son=new Son(new Son());


  57. }

  58. }

[java] view
plaincopy

  1. //输出结果为:


  2. 2010年新年快乐

  3. 菩提本无树,明镜亦非台,本来无一物,何处惹尘埃

  4. 美好的一天

  5. 曾经沧海难为水,除却巫山不是云

  6. 4

  7. 菩提本无树,明镜亦非台,本来无一物,何处惹尘埃

  8. 美好的一天

  9. 曾经沧海难为水,除却巫山不是云

  10. 菩提本无树,明镜亦非台,本来无一物,何处惹尘埃

  11. 美好的一天

  12. 曾经沧海难为水,除却巫山不是云

  13. 8

以上就是"Java静态块、自由块及构造函数的执行顺序是什么"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

子类 静态 自由 函数 构造器 美好 曾经沧海 尘埃 明镜 沧海 知识 篇文章 菩提 难为 巫山 无一 顺序 实例 快乐 关键 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器不开放数据库端口 软件开发过程中重要环节 网络技术在线培训机构 网络技术的发展的意义 电脑上网络安全密码是 深圳市沃飞网络技术有限公司 山西文档软件开发前端 族谱家谱数据库 软件开发介绍 中英 江西省卫生天使杯网络安全 怎样进入银行云软件开发 科迈系统怎么连接主机数据库 网络安全中的学科知识链接 有用户名为什么登陆不了服务器 网络安全安全宣传标语 hp服务器修改uefi 人社厅颁发的计算机网络安全员 数据库优化技术的意义 数据库增量同步 网络安全宣传大使视频 为什么网络安全股业绩差 军事网络安全有 计算机网络技术.mobi 全球很厉害的软件开发公司 方块前线服务器ip 魔兽世界怀旧服连不进服务器 电子商务对网络安全管控 文献数据库中概念从小到大 杭州软件开发定制收费标准 路由器无法解析服务器的dns地址
0