【问题标题】:Which is the first method called when Java executes a program?Java 执行程序时调用的第一个方法是什么?
【发布时间】:2015-11-12 18:47:01
【问题描述】:

我正在学习核心 Java,我有一个问题,“程序执行时调用的第一个方法是什么?”

【问题讨论】:

  • 首先调用包含 main 的类的静态初始化器,只有在调用成功时才调用 main() 方法。

标签: java


【解决方案1】:

那就是main 方法。

应该声明为

public static void main(String[] args)
  • 必须是 public,因为 JVM 应该有权调用该方法。
  • 必须是static,因为程序启动时没有实例化对象
  • 它将Strings 数组作为参数(来自命令行)

一些不错的链接可以看看:


有些人可能会推荐你写

public static void main(String... args)

这相当于String[] args 如果您使用的是1.5 或更高版本的编译器。 (除非您在内部使用不同数量的参数广泛调用 main 方法,否则我不鼓励这样做。)

其他人可能会建议

public static void main(String args[])

这也是等效的,但不鼓励Java Coding Convention

【讨论】:

【解决方案2】:

它通常是主要的。但是在这个程序中,它很痛苦:

public class WhatThe {
    public static final int x = pain();
    public static int pain() {
        System.out.println("pain!");
        return 0;
    }
    public static void main(String[] args) {
        System.out.println("main");
    }
}

就像这个一样:

public class WhatThe {
    static {
        pain();
    }
    public static void pain() {
        System.out.println("pain!");
    }
    public static void main(String[] args) {
        System.out.println("main");
    }
}

这不太可能是有用的知识,但需要注意。

【讨论】:

    【解决方案3】:
    public static void main(String ar[])
    

    Java 程序从 main 方法开始执行,该方法的标题如下:

    public static void main(String[] args)
    public static void main(String... args) //java 1.5+
    public static void main(String args[])
    

    Read more at docs

    【讨论】:

    • 请注意,String... 仅适用于 Java 1.5+。此外,Java 编码约定不鼓励使用 String args[] 语法。
    【解决方案4】:

    除了aioobes回答

    启动一个简单的java程序的常用方法是像这样执行java:

    java com.example.MyClass
    

    com.example.MyClass(或您的完全限定的类名)需要拥有一个具有完全此签名的 main 方法:

    public static void main(String[] args)
    

    (您只能更改参数的名称,例如 arguments 而不是 args)。虚拟机将尝试加载命名类并尝试调用此静态方法,该方法将“启动 Java 程序”。

    【讨论】:

      【解决方案5】:

      main 方法将首先被调用,控制首先进入具有方法标题的 main 方法: public static void main(String[] args) 或 public static void main(String args[])

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多