代码块(局部代码块、构造代码块、静态代码块) 代码块局部代码块、构造代码块、静态代码块代码块的概述在Java中使用{}括起来的代码被称为代码块代码块的分类根据位置和声明不同可以分为局部代码块构造代码块静态代码块同步代码块局部代码块在方法中出现限定变量生命周期及早释放提高内存利用率构造代码块初始化块:在类中方法外出现静态代码块一般用于加载驱动static{}测试代码public class face_code_question { public static void main(String[] args) { System.out.println(我是主方法); //创建对象 question snew question(); question s1new question(清杉夫人); //主方法在主方法类中的静态代码块执行之后执行 { System.out.println(我是局部代码块); } } static { System.out.println(我是主方法类中的静态代码块); //主方法类中的静态代码块优先于主方法执行 } } class question { private String name; //无参构造 public question() { System.out.println(我是无参构造); } //有参构造 public question(String name) { this.namename; System.out.println(我是有参构造); } { System.out.println(我是构造代码块); //随着对象的创建而加载对象创建一次构造代码块执行一次 } static { System.out.println(我是静态代码块); //静态代码块随着类的加载而加载并且只执行一次 } }运行结果总结局部代码块在方法中出现构造代码块在类中方法外出现随着对象的创建而加载创建一次对象构造代码块执行一次静态代码块随着类的加载而加载并且只执行一次一般用于加载驱动主方法类中的静态代码块优先于主方法执行面试题以下代码运行后会有怎样的输出结果为什么public class face_extends_question_2 { public static void main(String [] args) { Zi snew 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 snew zi();会先将fu.class和zi.class分别加载近内存在创建对象当fu.class加载进内存父类的静态代码块会随着父类的加载而加载当Zi.class加载进内存子类中的静态代码块会随着子类的加载而加载。走子类的构造方法因为Java中是分层初始化的先初始化父类在初始化子类所以先走父类构造但是在执行父类构造是发现父类构造中有构造代码块构造代码块是优先于构造方法执行的所以打三个输出父类的构造代码块接着输出父类的构造方法父类的构造方法初始化完成走子类的构造方法子类中也有优先于构造方法的构造代码块所以先显示子类中的构造代码块再显示子类的构造方法《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取4045b97ae8ac36b2a650.png)以上资料如何领取