Java public static void main(String[] args)
java程序在JVM调用main()方法时开始执行。Java应用程序从此方法开始。没有main方法,java文件将会编译成功,因为编译器在编译时不检查main方法,但在运行时JVM检查main()方法是否可用。因此,我们会在运行时得到一个异常。
在本文中,我们将了解为什么遵循约定“public static void main(String[] args)”。
语法
public class class_name {
// This line must be written as it is
public static void main(String[] args) {
// code will be wriiten here
}
}
示例1
public class Tutorialspoint {
public static void main(String []args) {
System.out.println("Hello, you are on tutorials point");
}
}
输出
Hello, you are on tutorials point
在我们的java文件中,至少应该有一个公共类可用。按照惯例,main方法必须定义在一个类中,因为在java中,一切都在类中。这表明java是一种面向对象的语言。
在上面的示例中,类’Tutorialspoint’包含main()方法。让我们讨论main()方法的各个部分−
public
public是一个访问修饰符,它定义了变量和方法的可见性或可访问性。使用public关键字定义的变量和方法对任何类和包都是可访问的。我们之前已经讨论了JVM如何调用main()方法,并且它不位于当前类中。因此,main()方法被声明为public,以便我们可以全局访问它或从任何地方访问它。
如果我们不在main()方法中使用public关键字会怎样?
示例2
public class Tutorialspoint {
static void main(String []args){
System.out.println("Hello, you are on tutorials point");
}
}
输出
Error: Main method not found in class Tutorialspoint, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
我们出现错误的原因是因为JVM找不到main()方法。
static
通常,我们通过创建其类的对象来调用方法,但静态方法可以在不使用对象的情况下调用。JVM在创建任何对象之前调用main()方法,所以我们需要将其声明为静态。
示例3
大多数内置类Math的成员都是静态的。我们可以直接使用它们而无需创建对象。
public class Main {
public static void main( String[] args ) {
double x = 6.55;
double y = 4.32;
System.out.println(" Ceil value of x: " + Math.ceil(x) );
System.out.println(" Floor value of y: " + Math.floor(y) );
}
}
输出
Ceil value of x: 7.0
Floor value of y: 4.0
上面的示例说明了Math类的静态方法ceil()和floor()的使用。我们可以看到,在我们的程序中直接使用了它们,而不需要创建Math类的任何对象。
让我们看看如果我们不将main()方法声明为静态会发生什么。
示例4
public class Tutorialspoint {
public void main(String []args){
System.out.println("Hello, you are on tutorials point");
}
}
输出
Error: Main method is not static in class Tutorialspoint, please define the main method as:
public static void main(String[] args)
JVM无法调用上述代码。
void
返回类型void表示该方法不返回任何内容。在Java中,main()方法是程序的入口和退出点。当main()方法执行完毕时,Java程序也结束执行。如果我们提供任何返回类型,如int或double,那么在编译时会抛出错误。
让我们通过一个示例来理解−
示例5
public class Tutorialspoint {
public int main(String []args){
System.out.println("Hello, you are on tutorials point");
}
}
输出
Tutorialspoint.java:4: error: missing return statement
}
^
1 error
这是一个编译时错误。编译器要求返回语句,但对JVM没有用处。
main()
main是方法的名称,不要误以为它是一个关键词。它总是以 “main” 的形式书写。
String[] args
String[] args是一个接受String类型参数的参数。它允许我们通过终端传递参数,并将这些参数存储在字符串数组中。我们可以说String[] args是一个命令行参数。
示例6
本例将说明如何将参数从终端传递给java文件。
public class Arg {
public static void main(String []args){
// for each loop to print argument taken from terminal
for(String arg : args) {
System.out.println(arg);
}
}
}
输出
在终端上编译代码,输入命令:javac Arg.java
在终端上运行代码,输入命令:java Arg “你的字符串”
PS D:\Java Programs> java Arg "Hello, You are on Tutorials Point"
Hello, You are on Tutorials Point
结论
在本文中,我们讨论了理解“public static void main(String[] args)”的Java程序。我们还讨论了如何使用参数“String[] args”从终端接收输入。