main() 方法为什么必须是静态的

静态-如果您声明方法,子类,块或静态变量,则将其与类一起加载。

在Java中,只要需要调用(实例)方法,就应该实例化(包含它的)类并调用它。如果我们需要不实例化地调用方法,则它应该是静态的。此外,静态方法与类一起被加载到内存中。

对于main方法,它是由JVM直接调用的,因此无法通过实例化其类来调用它。并且,它应该与类一起加载到内存中并可以执行。因此,主要方法应该是静态的。

当主要方法为非静态时

公共静态void main(String ar [])方法是Java中执行的入口点。当我们运行.class文件时,JVM会搜索main方法并逐行执行其内容。

您可以在没有static修饰符的情况下在程序中编写main方法,这样程序便可以编译而不会出现编译错误。但是,在执行JVM时,JVM不会将此新方法(没有静态方法)视为程序的入口点。

它搜索主要方法,该方法是公共的,静态的,返回类型为void,并将String数组作为参数。

如果找不到这样的方法,则会生成运行时错误。

为什么main方法是静态的(static)

正因为main方法是静态的,JVM调用这个方法就不需要创建任何包含这个main方法的实例。
因为C和C++同样有类似的main方法作为程序执行的入口。
如果main方法不声明为静态的,JVM就必须创建main类的实例,因为构造器可以被重载,JVM就没法确定调用哪个main方法。
静态方法和静态数据加载到内存就可以直接调用而不需要像实例方法一样创建实例后才能调用,如果main方法是静态的,那么它就会被加载到JVM上下文中成为可执行的方法。
为什么main方法是公有的(public)

     Java指定了一些可访问的修饰符如:private、protected、public,任何方法或变量都可以声明为public,Java可以从该类之外的地方访问。因为main方法是公共的,JVM就可以轻松的访问执行它。

为什么main方法没有返回值(Void) 

     因为main返回任何值对程序都没任何意义,所以设计成void,意味着main不会有任何值返回
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值