为什么main方法是public static void?

Main方法是我们学习Java编程语言时知道的第一个方法,你是否曾经想过为什么main方法是public、static、void的。当然,很多人首先学的是C和C++,但是在Java中main方法与前者有些细微的不同,它不会返回任何值,为什么main方式是public、static、void

操作方法

  • 01

    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)

  • 02

    为什么main方法是静态的(static) 正因为main方法是静态的,JVM调用这个方法就不需要创建任何包含这个main方法的实例。 因为C和C++同样有类似的main方法作为程序执行的入口。 如果main方法不声明为静态的,JVM就必须创建main类的实例,因为构造器可以被重载,JVM就没法确定调用哪个main方法。 静态方法和静态数据加载到内存就可以直接调用而不需要像实例方法一样创建实例后才能调用,如果main方法是静态的,那么它就会被加载到JVM上下文中成为可执行的方法。

  • 03

    为什么main方法是公有的(public) Java指定了一些可访问的修饰符如:private、protected、public,任何方法或变量都可以声明为public,Java可以从该类之外的地方访问。因为main方法是公共的,JVM就可以轻松的访问执行它。

  • 04

    为什么main方法没有返回值(Void) 因为main返回任何值对程序都没任何意义,所以设计成void,意味着main不会有任何值返回

  • 05

    总结 1.main方法必须声明为public、static、void,否则JVM没法运行程序

  • 06

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

  • 07

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

  • 08

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

  • 09

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

  • 10

    6.你可以声明main方法使用java1.5的可变参数的方式如: public static void main(String... args)

  • 11

    7.除了static、void、和public,你可以使用final,synchronized、和strictfp修饰符在main方法的签名中,如: public strictfp final synchronized static void main(String[] args)

  • 12

    8.main方法在Java可以像其他方法一样被重载,但是JVM只会调用上面这种签名规范的main方法

  • 13

    9. 你可以使用throws子句在方法签名中,可以抛出任何checked和unchecked异常

  • 14

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

(0)

相关推荐

  • Java main方法参数args[]

    这个是运行程序前给它的参数如果你在你程序要用这个参数的话就需要在运行前指定 比如java HelloWorld(类名) start(传递参数 )那么在HelloWorld的main方法里面 args就 ...

  • Java中的main()方法详解

    在Java中,main()方法是Java应用程序的入口方法,,因为JAVA是在C++的基础上开发的语言,main也是c++的程序入口,这里就说一下JAVA的main方法.也就是说,程序在运行的时候,第 ...

  • java运行main方法,怎么给main的参数添加值?

    在写java程序的过程中,有时候需要对main方法的参数进行初始化,因工作原因,常常忘记在哪里配置,下面就把写出来,提供大家参考 操作方法 01 第一步,先运行一下main,看一下是不是main里面是 ...

  • final关键字finally语句finalize方法的区别

    操作方法 01 final关键字 final.它可以用于以下四个地方:定义变量,包括静态的和非静态的. 定义方法的参数. 定义方法. 定义类. 我们依次来回顾一下每种情况下final的作用.首先来看第 ...

  • Java选择排序(升序和降序)

    选择排序是简单排序的一种,其排序思想为:首先将第一个数标记为最大数,其位置为最大数的位置:然后排除第一个数,使用第一个数和剩下的数依次比较,若剩下的数大于第一个数,则继续比较,直到找到最大数为止:最后 ...

  • Java编程比较两个数的大小

    Java编程如何比较两个数的大小,请看下面的教程,希望可以帮助到你 操作方法 01 首先,在电脑中找到myeclipse,并打开myeclipse: 02 打开myeclipse之后, 新建一个类,输 ...

  • java中带static的成员变量和方法有何作用?

    在java开发中,常常要创建带不同修辞关键字[public]\[private] static的成员变量或方法. 提出问题:这些关键字各起什么作用呢? 解决问题:现结合实例对static 小结一下. ...

  • linux系统中InputStream输入流的方法之reset()和mark()命令的注意事项

    今天写一个读写程序,运用到InputStream的reset方法是发现竟然失败了,然后查了一下JDK源码,发现BufferInputStream重写了父类FilterInputStream的mark和 ...

  • Java 在PPT中添加水印的简易方法(单一/平铺水印)

    [前言] 在PPT幻灯片中,可通过添加形状的方式,来实现类似水印的效果,可添加单一文本水印效果,即在幻灯片中心位置水印以单个文本字样显示,但通过一定方法也可以添加多行(平铺)文本水印效果,即在幻灯片中 ...