本文概述
main()是JVM开始执行Java程序的起点。没有main()方法, JVM将不会执行程序。 main()方法的语法为:
public:它是一个访问说明符。我们应该在main()方法之前使用公共关键字, 以便JVM可以识别程序的执行点。如果我们在main()方法之前使用private, protected和default, 则它对JVM不可见。
静态:你可以使用关键字“静态”将方法设为静态。我们应该在不创建对象的情况下调用main()方法。静态方法是在不创建对象的情况下调用的方法, 因此我们不需要任何对象即可调用main()方法。
void:在Java中, 每个方法都有返回类型。 Void关键字确认编译器main()方法不返回任何值。
main():这是在JVM中预定义的默认签名。 JVM调用它来逐行执行程序, 并在此方法完成后结束执行。我们还可以重载main()方法。
字符串args []:main()方法还接受用户的一些数据。它接受一组字符串, 称为字符串数组。它用于以字符串值的形式保存命令行参数。
main(String args[])
在这里, agrs []是数组名, 它是String类型的。这意味着它可以存储一组字符串。请记住, 该数组还可以存储一组数字, 但只能以字符串形式存储。传递给main()方法的值称为参数。这些参数存储在args []数组中, 因此通常使用名称args []。
如果main()方法编写时没有String args [], 会发生什么情况?
该程序将编译, 但不会运行, 因为JVM无法识别main()方法。请记住, JVM总是使用字符串类型数组作为参数来寻找main()方法。
执行过程
首先, JVM执行静态块, 然后执行静态方法, 然后创建程序所需的对象。最后, 它执行实例方法。 JVM在最高优先级的基础上执行静态块。这意味着JVM甚至在它在程序中寻找main()方法之前都先进入静态块。
例
class Demo
{
static //static block
{
System.out.println("Static block");
}
public static void main(String args[]) //static method
{
System.out.println("Static method");
}
}
输出:
Static block
Static method
我们观察到JVM首先执行静态块(如果程序中存在静态块)。之后, 它将搜索main()方法。如果未找到main()方法, 则会产生错误。
例
不具有main()方法的程序在运行时给出错误。
class DemoStaticBlock
{
Static //static block
{
System.out.println("Static block");
}
}
输出:
Error: Main method not found in the class Demo, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
因此main()方法应始终写为:
public static void main(String args[])
我们可以将public和static互换并编写如下:
static public void main(String args[])
我们还可以为String类型数组使用其他名称, 并将其写为:
static public void main(String[] x)
编写main()方法的不同方法是:
static public void main(String []x)
static public void main(String...args)
String … args:它允许方法接受零个或多个参数。 String和array之间应该恰好有三个点;否则, 将产生错误。
例
没有main()方法, 但是可以编译并成功运行的程序。
abstract class DemoNoMain extends javafx.application.Application
{
static //static block
{
System.out.println("Java");
System.exit(0);
}
}
输出:
Java
main()方法的重载
我们还可以重载main()方法。我们可以在类中定义任意数量的main()方法, 但是方法签名必须不同。
例
class OverloadMain
{
public static void main(int a) //overloaded main method
{
System.out.println(a);
}
public static void main(String args[])
{
System.out.println("main method incoked");
main(6);
}
}
输出:
main method invoked
6
评论前必须登录!
注册