关于java:今天终于搞懂了为什么-Java-的-main-方法必须是-public-static-void

43次阅读

共计 1691 个字符,预计需要花费 5 分钟才能阅读完成。

Main 办法是咱们学习 Java 编程语言时晓得的第一个办法,你是否已经想过为什么 main 办法是 public、static、void 的。当然,很多人首先学的是 C 和 C++,然而在 Java 中 main 办法与前者有些轻微的不同,它不会返回任何值,为什么 main 形式是 public、static、void,这篇文章尝试去找到一些答案。

Main 办法是 Java 程序的入口,记住,咱们这里不会探讨 Servlet、MIDlet 和其余任何容器治理的 java 程序,在 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 调用这个办法就不须要创立任何蕴含这个 main 办法的实例。

2. 因为 C 和 C++ 同样有相似的 main 办法作为程序执行的入口。

3. 如果 main 办法不申明为动态的,JVM 就必须创立 main 类的实例,因为结构器能够被重载,JVM 就没法确定调用哪个 main 办法。

4. 静态方法和静态数据加载到内存就能够间接调用而不须要像实例办法一样创立实例后能力调用,如果 main 办法是动态的,那么它就会被加载到 JVM 上下文中成为可执行的办法。

为什么 main 办法是私有的(public)?

Java 指定了一些可拜访的修饰符如:private、protected、public,任何办法或变量都能够申明为 public,Java 能够从该类之外的中央拜访。因为 main 办法是公共的,JVM 就能够轻松的拜访执行它。

为什么 main 办法没有返回值(Void)?

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

总结

1.main 办法必须申明为 public、static、void,否则 JVM 没法运行程序。

2. 如果 JVM 找不到 main 办法就抛出 NoSuchMethodError:main 异样,例如:如果你运行命令:java HelloWrold,JVM 就会在 HelloWorld.class 文件中搜寻 public static void main (String[] args) 办法。

3.main 形式是程序的入口,程序执行的开始处。

4.main 办法被一个特定的线程”main”运行,程序会始终运行直到 main 线程完结或者 non-daemon 线程终止。

5. 当你看到“Exception in Thread main”如:Excpetion in Thread main:Java.lang.NullPointedException,意味着异样来自于 main 线程。

6. 你能够申明 main 办法应用 java1.5 的可变参数的形式如:publicstaticvoid main(String… args)。

7. 除了 static、void、和 public,你能够应用 final,synchronized、和 strictfp 修饰符在 main 办法的签名中,如:publicstrictfpfinalsynchronizedstaticvoid main(String[] args)。

8.main 办法在 Java 能够像其余办法一样被重载,然而 JVM 只会调用下面这种签名标准的 main 办法。

9. 你能够应用 throws 子句在办法签名中,能够抛出任何 checked 和 unchecked 异样。

10. 动态初始化块在 JVM 调用 main 办法前被执行,它们在类被 JVM 加载到内存的时候就被执行了。

起源:suo.im/6v9d64

欢送关注我的微信公众号「码农解围」,分享 Python、Java、大数据、机器学习、人工智能等技术,关注码农技术晋升•职场解围•思维跃迁,20 万 + 码农成长充电第一站,陪有幻想的你一起成长

正文完
 0