我们都知道Java的入口方法是main函数,下面这段代码就是Java中非常经典的Hello World代码:

我们通过Java提供的工具进行编译执行:

通过上面的代码我们知道Java入口方法的几个要求:

  • 方法名称必须是main
  • 方法必须是静态方法
  • 方法返回值必须是void
  • 方法只接收一个String[]类型的入参

Java程序的入口方法为什么是main方法

有上面的分析我们可以知道Java的入口方法是固定格式的,那么这个固定的格式是在哪里指定的呢?下面我们就分析一下。

要想知道为什么Java的入口方法为什么是main方法,就需要研究jvm的源码了。在jvm的源码中我们能够找到如下的代码:

从代码中可以发现,jvm中会从mainClass中去查找一个名称为main的静态方法,这个就是Java的入口方法,这个方法的描述信息为:([Ljava/lang/String;)V。这个字符串就描述了入口方法的入参和返回值。

[Ljava/lang/String表示的是参数为String[],V表示的是返回值为void。

java main函数_都知道Java程序的入口方法是main,那你知道为什么是main方法吗?相关推荐

  1. java static 函数_详解java中的static关键字

    Java中的static关键字可以用于修饰变量.方法.代码块和类,还可以与import关键字联合使用,使用的方式不同赋予了static关键字不同的作用,且在开发中使用广泛,这里做一下深入了解. 静态资 ...

  2. java主函数_《左手 Java 右手 Python 》之 Java 的安装与初识(1)

    (一)java 的安装与配置(windows) 1. jdk 安装 到oracle官网,下载 相应版本的Java SE 2. 验证安装 进入安装目录 3.配置环境变量 一共要配置 3 个环境变量 第 ...

  3. java convert函数_自己实现 java中 Convert.toDouble(String str)处理函数 | 学步园

    今天在superWaba上看到Convert.toDouble(String str),由于底层问题比较大的数就出错,现在自己写了一个 程序中info()是我加的打印,可以去掉 java中 Conve ...

  4. java同名函数_浅谈Java 继承接口同名函数问题

    在Java中如果一个类同时继承接口A与B,并且这两个接口中具有同名方法,会怎么样? 动手做实验: interface A{ void fun(); } interface B{ void fun(); ...

  5. java 聚合函数_如何使用Java流计算两个聚合函数?

    我有一个像这样的"请求"对象列表(id,金额,价格) List requests = Arrays.asList( new Request(id++, 20, 59.28), ne ...

  6. java插入图片_如何在java窗体程序中添加图片

    打开eclipse,创建一个java工程项目,创建完后在src下新建一个类Window,由于要插入图片,所以还在工程目录下创建一个文件夹imgs,里面放了一张60*60的图片,创建后的工程目录和图片, ...

  7. STM32系列单片机在进入main函数前都在干些什么?

    在刚开始学习单片机的时候,一直以为程序启动后就直接进入到了main函数,但是随着学习的深入才发现,程序在进入main函数前其实还要干好多事情.现在就来分析一下,STM32系列单片机程序在进入main函 ...

  8. Java培训:什么是Java?为什么大家都学习Java技术?

    java技术在互联网行业属于常驻嘉宾,想要进入到互联网行业,学习java技术是首选,那么具体什么是java?为什么大家都学习java技术?来看看下面的详细介绍就知道了. 1. 什么是java? Jav ...

  9. java main函数_一行JAVA代码如何运行起来?

    在程序员的世界中,你总会听到一句"PHP是世界上最好的语言"的调侃.然而在你进入软件程序开发之后,你会发现即使开发语言千千万,最盛行的还是JAVA.从淘宝的技术变迁中我们可以见一些 ...

最新文章

  1. Windows文件操作的直接函数调用
  2. 华硕笔记本电池0%充不进电_笔记本电脑电池充不进电如何解决【解决方法】
  3. php热门标签,PHP显示最流行的标签
  4. python抢货程序_写个Python程序上下班抢个顺风单
  5. conv2d的输入_pytorch1.0中torch.nn.Conv2d用法详解
  6. 【JEECG技术博文】jeecg 定时任务配置用法
  7. 【C语言】用C语言输出一个吃豆人
  8. 正则表达式学习笔记009--大括号与选择符的认识与应用
  9. 使用flatten-maven-plugin对发布的POM进行精简
  10. 全网首发:FreeType加载字体图像的几个关键函数
  11. select标签如何设置默认选中的选项
  12. LPSTR、LPCSTR、LPTSTR和LPCTSTR,LPVOID的意义及区别
  13. !! A股历史平均市盈率走势图
  14. cavans制作水印 html
  15. 一个nginx小白的vue项目部署的成功!
  16. 几款笔记软件的使用感受
  17. 网站老被劫持快照被黑怎么修复解决
  18. PhoneGap VS. Titanium
  19. 天池比赛TASK3打卡
  20. 浅谈Linux标准的文件系统(Ext2/Ext3/Ext4)

热门文章

  1. linux fedora35指定某个固定的启动项作为默认的启动项
  2. Go gin内嵌静态资源go-bindata的安装及使用(GVA)
  3. 【杂记】2020年度中国医院排行榜
  4. 【收藏】CentOS 7 安装NFS
  5. linux grep查找命令使用示例
  6. Java栈内存溢出代码实例
  7. Java客户端操作elasticsearch--创建索引(集群模式下)
  8. 【软考-软件设计师】计算机系统硬件基本组成
  9. Hadoop分布式文件系统hdfs的shell操作命令大全
  10. 类变量与实例变量辨析