乐趣区

关于java:main函数你到底知道多少

作者:烧鸡太子爷

起源:恒生 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 云社区,由恒生电子搭建的金融科技业余社区平台,分享实用技术干货、资源数据、金融科技行业趋势,拥抱所有金融开发者。

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

退出移动版