美文网首页
java的main函数

java的main函数

作者: going_hlf | 来源:发表于2020-11-02 23:11 被阅读0次
    1. 每个类都可以有一个main(),哪个起作用取决于把哪个类当做主类。一个类是否需要main()取决于这个类是否需要作为外部执行的入口(包括测试用途的入口)。

    2. 你可以调用只有包(默认)访问权限的类的main(),这样便于测试程序对每个类进行测试(当然,使用junit后你可能不需要使用main()进行测试)。

    3. main()方法是一个static方法,所以main不能调用本类中的非静态成员和方法,如果需要调用,必须通过new一个对象来调用。

    main方法的签名只能是这种形式:

    public static void main(String[] args)
    public static void main(String... args) // on java8
    
    Q1:为什么必须是static?

    如果main方法不声明为静态的,JVM就必须创建main所在类的实例,因为构造器可以被重载,JVM就没法确定调用哪个main方法。

    Q2:为什么必须是public?

    如果不是public,外部根本无法访问(protected和包访问权限,也只限于本包内能够访问),不管是不是静态方法。

    Q3:为什么返回必须是void?

    因为加返回值没意义,难道还指望jvm收到你的返回值帮你做点事情?

    Q4: 为什么参数必须是String数组?

    这个问题是最复杂的,尝试回答一下,不对的请指正,接下来还要继续深挖一下原理。
    java的main和C的mian不是对等的关系,java的main跟C的__libc_start_main(gcc)和mainCRTStartup(MSVC)对等。

    相关文章

      网友评论

          本文标题:java的main函数

          本文链接:https://www.haomeiwen.com/subject/uqquvktx.html