zoukankan      html  css  js  c++  java
  • 浅析 public static void main(String[] args)

          最初接触Java程序的时候,老师就教导我们要从下面这句开始学起,据说是约定俗成的,所以直到今天,还是只知道java程序应该这么写,具体为什么这么写,鄙人惭愧。

    1 public class ClassName{
    2     public static void main(String[] args){
    3         System.out.println("Hello Java");
    4     }
    5 }

      今天既然自己都这么惭愧了,那么就该是时候弄明白为什么java的主函数要按照这个格式来写,从以下几点来说明吧。

     为什么使用public static修饰main()

      Java中,main()方法是java应用程序的入口方法。java虚拟机通过main方法找到需要启动的运行程序,并且检查main函数所在类是否被java虚拟机装载。如果没有装载,那么就装载该类,并且装载所有相关的其他类。因此程序在运行的时候,第一个执行的方法(注意是方法,而不是其他的,例如代码块)就是main()方法。通常情况下, 如果要运行一个类的方法,必须首先实例化出来这个类的一个对象,然后通过"对象名.方法名()"的方式来运行方法,但是因为main是程序的入口,这时候还没有实例化对象,因此将main方法声明为static的,这样这个方法就可以直接通过“类名.方法名()”的方式来调用。

     为什么使用void修饰main()

      对于java中的main(),jvm有限制,不能有返回值,因此返回值类型为void。

     关于参数String[] args的说明

          main方法中还有一个输入参数,类型为String[],这个也是java的规范,main()方法中必须有一个入参,类细必须String[],至于字符串数组的名字,这个是可以自己设定的,根据习惯,这个字符串数组的名字一般和sun java规范范例中mian参数名保持一致,取名为args。

     main()方法可以 throws Exception

          看到网上有说main()方法不能抛出异常,感觉有点疑惑,就亲自试验了一把,代码如下,运行正常。

    1 public class ArgumentsOfMain {
    2     public static void main(String[] args) throws Exception{
    3         System.out.println("Hello World");
    4         throw new Exception("hello world"); 
    5     }
    6 }

    总结

    通过对main()的修饰符合参数进行说明,总算对其所有了解,不至于一点都不懂所以然。不过还有点困惑,留在此处,希望大牛指教。问题是:代码中的static代码块为什么先于main()函数被执行?

    public class ArgumentsOfMain {
        static { 
            System.out.println("Hello Wordld!"); 
        }
        public static void main(String[] args){
            System.out.println(args.length);
        }
    }
  • 相关阅读:
    postman使用详解
    如何测试一个水杯
    selenium3(java)之屏幕截图操作
    C语言随机点名程序
    关于测试执行的一些总结与思考
    小议SQL数据插入
    BS架构和CS架构的区别
    Oracle伪列(ROWNUM)的使用
    Loadrunner学习资料
    【Apache运维基础(2)】主配置文件说明
  • 原文地址:https://www.cnblogs.com/RobertC/p/3488578.html
Copyright © 2011-2022 走看看