作者:烧鸡太子爷

起源:恒生LIGHT云社区

前言

前段时间看到一道面试题:“main函数能够被重载么?”,过后就蒙圈了,怎么还会有这种面试题,当初面试官都这么变态么?尽管变态不过还是挺感兴趣的,于是就温习了一遍根底题 [此处坏笑表情]

main介绍

咱们开始学习java程序的时候,最先拍得一段代码必定是main函数,main函数的格局如下:

public static void main(String[] args){  }

首先针对 main 办法的格局定义:

「public」 :main 办法是启动的时候由 JVM 进行加载的,public 的可拜访权限是最高的,所以须要申明为 public;

「static」 :办法的调用要么是通过对象,要么是通过类,而 main 办法的话因为是由虚拟机调用的,所以无需生成对象,那么申明为 static 即可;

「main」 :至于为什么办法名称叫 main,我想应该是参考的是 C 语言的办法名吧,毕竟java的鼻祖原先是写C的;

「void」 :main 办法退出时,并没有须要有相干返回值须要返回,所以是 void;

「String[]」 :此字符串数组用来运行时承受用户输出的参数;

这时候大家发现了没有,main办法和其余的静态方法是一样的。

main能够被重载吗

间接上代码

运行胜利,所以除了 JVM 规定的作为应用程序入口的 main 办法之外,其余的main办法都是比拟一般的办法

main能够被继承吗

持续上代码,定义一个HelloMeta继承父类HelloWorld

显然子类还是运行了父类的main办法。那么咱们再重写下子类的办法

还是能够运行子类中的main办法

main能够被调用吗

还是上代码吧

能够看到main办法被callVerification办法调用了,不过两头因为没有退出办法,导致死循环,程序崩了

总结

除了main办法作为JVM应用程序的入口比拟非凡外,其余状况下与失常的静态方法是没什么区别的。


想向技术大佬们多多取经?开发中遇到的问题何处探讨?如何获取金融科技海量资源?

恒生LIGHT云社区,由恒生电子搭建的金融科技业余社区平台,分享实用技术干货、资源数据、金融科技行业趋势,拥抱所有金融开发者。

扫描下方小程序二维码,退出咱们!