当前位置: 首页 > 后端技术 > Java

【Java面试手册-基础】如何在main()方法执行前输出“HelloWorld”?

时间:2023-04-01 15:54:54 Java

在Java语言中,main()方法是程序的入口方法。程序运行时,main()方法是第一个被加载的,但是这是不是意味着程序运行时main()方法是第一个被加载的呢?执行的模块呢?答案是不。在Java语言中,由于类加载时会调用静态块,所以可以在main()方法执行前使用静态块输出“HelloWorld”。以下面的代码为例。packagecom.magic.main;publicclassStaticMainDemo{static{System.out.println("HelloWorld!");}publicstaticvoidmain(String[]args){System.out.println("Hello,mainmethod!");}}运行StaticMainDemo,可以看到如下输出信息:HelloWorld!Hello,mainmethod!从输出结果来看,“HelloWorld!”在执行main()方法之前首先输出。在上面的示例代码中,static静态代码块位于main()方法之前。如果换个位置,输出的结果会一样吗?packagecom.magic.main;publicclassStaticMainDemo{publicstaticvoidmain(String[]args){System.out.println("Hello,mainmethod!");}static{System.out.println("HelloWorld!");}}再次执行,可以看到输出还是一样的HelloWorld!你好,主要方法!也就是说,无论静态代码块在什么地方,都优先于main()方法执行。至于为什么会这样?这就涉及到另外一个知识点,即Java程序初始化的顺序。由于本文主要用于分享Java中的main()方法,所以这里不再讨论Java程序初始化的顺序,这里贴一篇【Java程序初始化的顺序是什么??]的答案解析截图,如下:更多Java面试知识点可以关注【Java面试手册】小程序,涉及Java基础、多线程、JVM、Spring、SpringBoot、SpringCloud、Mybatis,Redis,数据库,数据结构与算法等