当我们创建main方法时,首先都是public、都是static,返回值都是void,方法名都是main,入参都是一个字符串数组。
在以上的方法声明中,唯一可以改变的部分就是方法的参数名,我们可以吧args改成任意我们想要使用的名字。
main方法时JVM执行的入口,为了方便JVM的调用,所以需要将他的访问权限设置为public,并且静态方法会方便JVM直接调用,不需要实例化对象。
因为JVM的退出其实是不完全依赖main方法的,所以JVM不会接收main方法的返回值,所以给main方法定义一个返回值是没有任何意义的,所以main方法的返回值为void。
为了方便main函数可以接受多个字符串参数作为入参,所以他的形参类型被定义为String[]。
为什么main方法是公有的?
Java中,对于main方法来说,我们需要通过JVM直接调用他,那么就需要他的限定符必须是public的,否则的话是无法被访问的。
为什么main方法是静态的?
static是静态修饰符,被他修饰的方法我们称之为静态方法,静态方法有一个特点,就是静态方法独立于该类的任何对象,他不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内找到他们。
对于main方法来说,他的调用过程就是经历了类加载、链接和初始化的。但是并没有被实例化,这个时候如果想要调用一个类中的方法。那么这个方法必须是静态方法,否则是无法调用的。
为什么main方法没有返回值?
在Java中,程序的退出是由JVM进行控制的,在发生以下两种情况下,程序就会被终止并退出:
1. 所有不是后台守护线程的线程全部终止。
2. 某个线程调用了Runtime类或者System类的exit方法,并且安全管理器并不禁止exit操作。
上面两种情况中,第二种情况一旦发生,JVM是不会管main方法有没有执行完的,他都会终止所有行为并退出,这个时候main方法的返回值是没有任何意义的。
为什么main方法的入参是字符串数组(String[])?
Java应用程序是可以通过命令行接收参数传入的,从命令行传递的参数可以在Java程序中接收,并且可以 用作输入。
因为命令行参数最终都是以字符串的形式传递,并且有的时候命令行参数不止一个,所以就可能传递多个参数。
这个时候,作为Java应用程序执行入口,main方法就需要能够接收这多个字符串参数,那么就使用字符串数组了。
标签:Java,void,static,JVM,静态方法,返回值,main,方法 From: https://blog.csdn.net/weixin_62773644/article/details/139511460