个性化阅读
专注于IT技术分析

Java main()方法

本文概述

main()是JVM开始执行Java程序的起点。没有main()方法, JVM将不会执行程序。 main()方法的语法为:

Java主要方法

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

赞(0)
未经允许不得转载:srcmini » Java main()方法

评论 抢沙发

评论前必须登录!