如何实现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()方法执行之前执行。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值