首页 > 技术文章 > java的main方法为什么必须是public static void

YinDa 2020-10-10 22:51 原文

在java核心编程中,JVM会查找类中的public static void main(String[]args),如果找不到该方法就会抛出NoSuchMethodError:main程序终止

main方法必循是public static void,参数是字符串数组,如果是Java1.5及以后的版本还可以使用可变参数:

public static void main(String...args)

 为什么main方法是静态的(static?)

 1.正因为main方法是静态的,JVM调用这个方法就不需要创建任何包含这个方法的实例

2.如果main方法不声明为静态的,JVM就必须创建main的实例,因为构造器可以被重载,JVM就没有确定调用哪个方法

3.静态方法和静态数据加载到内存就可以直接调用而不需要像实例方法一样创建实例才可以调用,如果main方法是静态的,那么它就会被加载到JVM上成为可执行的方法

为什么main方法是公有的(public)?

java可指定一些可访问的修饰符,如private,protected,public,任何方法和变量都可以声明为public,java可以从该类之外的其它地方访问,因为main是公共的,JVM就可以轻松的访问执行它

为什么main方法没有返回值

因为main返回值对程序没任何意义,所以设计成void,意味着main不会有任何返回值

推荐阅读