【发布时间】:2015-11-12 18:47:01
【问题描述】:
我正在学习核心 Java,我有一个问题,“程序执行时调用的第一个方法是什么?”
【问题讨论】:
-
首先调用包含 main 的类的静态初始化器,只有在调用成功时才调用 main() 方法。
标签: java
我正在学习核心 Java,我有一个问题,“程序执行时调用的第一个方法是什么?”
【问题讨论】:
标签: java
那就是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。
【讨论】:
它通常是主要的。但是在这个程序中,它很痛苦:
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");
}
}
这不太可能是有用的知识,但需要注意。
【讨论】:
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[])
【讨论】:
String... 仅适用于 Java 1.5+。此外,Java 编码约定不鼓励使用 String args[] 语法。
除了aioobes回答
启动一个简单的java程序的常用方法是像这样执行java:
java com.example.MyClass
com.example.MyClass(或您的完全限定的类名)需要拥有一个具有完全此签名的 main 方法:
public static void main(String[] args)
(您只能更改参数的名称,例如 arguments 而不是 args)。虚拟机将尝试加载命名类并尝试调用此静态方法,该方法将“启动 Java 程序”。
【讨论】:
main 方法将首先被调用,控制首先进入具有方法标题的 main 方法: public static void main(String[] args) 或 public static void main(String args[])
【讨论】: