有没有想过 Java 中的 main 方法为什么一定要用public修饰

写在前面

在平时写Javamain方法的时候大部分都是依赖于集成环境中的快捷键自动生成的代码。

如果长时间没有手写而是一直依赖快捷键就会忘记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。顿时豁然开朗。
在这里插入图片描述

  • 21
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 38
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莪假裝堅強

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值