如何实现main()方法执行前输出“Hello World”

对于这个问题,面试官最喜欢问:

  面试官:给我说下如何实现main()方法执行前输出“Hello World”

  小明:摸了摸脑袋,看了看面试官,摆了下脑袋,很愁的答了句,这还真不知道。

  面试官:mai()方法执行之前可以输出别的程序吗?

  小明:沉默了下,想了想,main()方法是程序的入口方法,在程序运行时,最先加载的就是main()方法,那肯定不会执行别的程序          啊。

  面试官:今天就这样吧,后续有消息通知你。

     扎心了,老铁。

   来:我们来分析下面试官的这道问题,众所周知,在java语言中,main()方法是程序的入口方法,在程序运行时,最先加载的就是main()方法,但这是否意味着main()方法就是程序运行时第一个被执行的模块了。

  答案是否定的,为什么了,我们来分析下,在java语言中,由于静态块在类被加载的时候就会被调用,因此可以在mian()方法执行

前,利用静态代码快实现输出“Hello World”

  俗话说的好,光说不练,假本事

  上代码:

public class DemoTest {
    //静态代码块
      static{
        System.out.println("我是HelloWorld(1)");
     }
      public static void main(String[] args) {
          System.out.println("我是HelloWorld(2)");
      }
  }
 //输出:
E:\java\bin\java.exe "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 
我是HelloWorld(1)
我是HelloWorld(2)

  有的“缸径”就是不服,你这是按代码执行顺序执行的吧

   好,那行,不服也得服:上代码

public class DemoTest {

      public static void main(String[] args) {
          System.out.println("我是HelloWorld(2)");
      }
      //静态代码块
      static{
          System.out.println("我是HelloWorld(1)");
      }
  }

//输出结果
E:\java\bin\java.exe "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA lang\2.6\commons-lang-2.6.jar com.mayikt.handler.controller.DemoTest
我是HelloWorld(1)
我是HelloWorld(2)

这就说明:静态快不管顺序如何,都会在main()方法执行之前执行。

发布了41 篇原创文章 · 获赞 8 · 访问量 1295

猜你喜欢

转载自blog.csdn.net/sdgames/article/details/104976288