关于java:Java面试手册基础篇Java中能否声明main方法为非静态方法

5次阅读

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

答案是否定的 ,main() 办法必须申明为动态的,这样 JVM 才能够调用 main() 办法而无需先实例化它的类。

因为 main 是程序的入口办法,所以当程序运行时,第一个执行的办法就是 main()办法。通常来讲,要执行一个类的办法,先必须实例化一个类的对象,而后通过对象来调用这个办法。但因为 main 是程序的入口办法,此时还没有实例化对象,因而在编写 main()办法时就要求不须要实例化对象就能够调用这个办法,鉴于此,main()办法须要被定义成 public 与 static。

如果从 main()办法去掉 static 这个申明,尽管编译仍然能够胜利,但在运行时会导致程序失败,比方上面的程序:

package com.magic.main;

public class MainDemo {public void main(String[] args) {System.out.println("Hello World");
    }
    
}

(1)先应用 javac MainDemo.java 命令进行编译,会失去 MainDemo.class 文件;

(2)再应用 java MainDemo.class 命令运行,会看到输入如下的谬误

谬误: 找不到或无奈加载主类 MainDemo.class

从上能够看出,如果去掉 main() 办法的 static 申明,尽管编译是胜利的,然而无奈运行!

同理,如果去掉 public 修饰符,或者将其批改成 private 或 protected,都是无奈运行的。

更多无关 Java 面试相干的知识点能够关注【Java 面试手册】小程序,波及 Java 根底、多线程、JVM、Spring、Spring Boot、Spring Cloud、Mybatis、Redis、数据库、数据结构与算法等。

正文完
 0