写在前面
在平时写
Java
的main
方法的时候大部分都是依赖于集成环境中的快捷键自动生成的代码。
如果长时间没有手写而是一直依赖快捷键就会忘记
main
方法的完整写法
为了证明我还没有忘记它的写法,下面完整的写出了Java中的main方法
public static void main(String[] args){
}
然而今天在写代码的某个时刻,注意到了main
方法中的public
修饰符,我就思考在一个固定写法的main方法中的为什么前面会写一个public呢?
探索过程
通过main方法的结构可以看到前面有一个public
修饰,学过Java的四种修饰符的应该不难理解,表示的是该方法是公有的,可供外部进行访问。
但是否想过,main方法其实是由虚拟机进行调用的,其它的方法自然不会调用main方法,也就是说调用它的对象是固定的。
那么是否有必要将mian方法定为public呢。如果Java的虚拟机约定如何处理main方法,是否可以少写一个单词。
问题验证
- 下图为有public方法的情况下,右侧有一个绿色的三角形表示可运行的。
- 当没有public方法的时候,右侧的绿色图标消失,此时表示不可运行。
查阅资料
通过查阅资料发现其实这是一个几十年前就存在的一个bug。顿时豁然开朗。