最初接触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);}
}

转载于:https://www.cnblogs.com/RobertC/p/3488578.html

浅析 public static void main(String[] args)相关推荐

  1. 错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.ap

    最近在使用eclipse编写java程序时遇到这样一个问题: 错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args)否则 J ...

  2. [转载] public static void main(String[] args) 隐含了什么?

    参考链接: 了解Java中" public static void main"中的" static" public class TestSort { publi ...

  3. 关于public class 类名{ public static void main(String[] args)}的一些说明

    Test.java /*1.在java中任何有效的代码必须写到"类体"当中,最外层必须是一个类的定义.2.public表示公开的,class表示定义一个类,Test是一个类名.类名 ...

  4. 浅谈public static void main(String[] args)

    public static void main(String[] args){//代码 } mian函数是程序的执行入口 public:表示main方法可以由任何类访问.(java虚拟机调用main方 ...

  5. java public main_JAVA:public static void main(String args[]) 详解

    JAVA中的主函数,所有java程序的运行起点就是这个方法,除了args这个名字可以不一样外,其他必须是这样. 主函数的一般写法如下: public static void main(String[] ...

  6. public static void main(String[] args)

    public static void main(String[] args)到底 是什么意思? public static void main(String[] args), 是Java程序的入口地址 ...

  7. main方法为什么要写成:public static void main(String [] args){}?

    使用idea创建src的java文件时自带一个Main.java文件,该文件输出一句"Hello World",这是为什么呢?原来Hello World 中文意思是『你好,世界』. ...

  8. System.out.Print();快捷键 intellij idea public static void main(String[] args)

    System.out.Print();快捷键 输入sout + tab public static void main(String[] args) 快捷键 psvm + tab 参考 https:/ ...

  9. 【Java】错误: 在类 Test1.Test2 中找不到 main 方法, 请将 main 方法定义为:    public static void main(String[] args)的解决方案

    问题:运行Java程序的时候碰到如下问题 错误: 在类 Test1.Test2 中找不到 main 方法, 请将 main 方法定义为:    public static void main(Stri ...

最新文章

  1. drawboard pdf拆分文件_电脑在线如何分割PDF页面?免费分割3M以内PDF文件页面的简单方法...
  2. C++ STL容器之map 简单使用
  3. 每日一题(31)—— 全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
  4. Feign 超时设置
  5. python机器学习库sklearn——DBSCAN密度聚类
  6. delphi 剪切板变量_delphi读写剪贴板
  7. 服务器远程预览本地设备视频, 预览多个,打不开视频流
  8. 如何查询硬盘序列号?百度基本都是错的,其实一条命令搞定!
  9. 氨基酸密码子表(Amino Acid Codon)
  10. 默纳克系统电梯服务器怎么封超载,默纳克电梯系统故障代码.pdf
  11. 我国个人缴税计算实例
  12. 三菱PLC控制东芝4轴机器人程序,有完整的PLC程序带注释
  13. ecshop 简单修改 可做淘宝客网站
  14. web服务器端预约系统,Web场馆预约管理系统
  15. 如何快速高效学习技术
  16. 许奔创新社-第28问:创新符合用进废退原则吗?
  17. 关于电子书(CHM)无法打开的解决方法
  18. 如何实现一款毫秒级实时数据分析引擎
  19. 10027---IO流 InputStream Reader
  20. chai3d+haptic device

热门文章

  1. Linux中的进程组及会话
  2. 402.移掉K位数字,使得剩下数字最小
  3. 立个flag,一个月之内把知识点整理完,放到博客
  4. 8086汇编-实验9-字符打印
  5. ajax接口调节,前端用ajax调接口怎么破啊?
  6. 第 5 章 Spring AOP: Spring之面向方面编程
  7. log4j配置文件中使用变量
  8. java 控制语句、数组、方法
  9. 生成EXCEL文件是经常需要用到的功能,我们利用一些开源库可以很容易实现这个功能。...
  10. simple2.py