java - java中主要方法中args与arg的区别?
问题描述
为什么
" 公共静态 void main(String[] arg) { "
工作而不是
“公共静态无效主要(字符串[]参数){”?
它与字符串数组有什么关系吗?
它究竟是如何工作的?使用“arg”而不是“args”可能会更有效吗?
解决方案
除了参数名称的正常差异之外,绝对没有区别(例如,您必须在方法主体中使用正确的名称)。该main
方法的参数名称完全按照约定。完全可以这样写:
public static void main(String[] dontUseJavaUtilDate)
作为您的入口点的声明。
从JLS 12.1.4使用Test
最后,在类的初始化完成后
Test
(在此期间可能发生了其他相应的加载、链接和初始化),调用Test的main方法。方法 main 必须声明为 public、static 和 void。它必须指定一个声明类型为数组的形式参数(第 8.4.1 节)
String
。
没有指定参数名称。
JVM 规范第 5.2 节的同上:
Java 虚拟机通过使用引导类加载器(第 5.3.1 节)创建一个初始类来启动,该类以依赖于实现的方式指定。Java 虚拟机然后链接初始类,对其进行初始化,并调用公共类方法 void main(String[])。调用此方法会驱动所有进一步的执行。执行构成主要方法的 Java 虚拟机指令可能会导致附加类和接口的链接(并因此创建),以及调用附加方法。
推荐阅读
- python - 如何使用 pywinauto 从远程桌面上运行的应用程序接收事件
- lisp - 如何在嵌套循环中模拟收集
- c - puts() 不会刷新 io 重定向程序中的缓冲区
- flutter - 如何在 Flutter 中创建带有框的文本字段?
- node.js - 当我在容器中运行节点服务器时出现“express.default 不是函数”错误
- android - 无法在 SQLite 中创建第二个表
- azure - Azure CLI - 删除资源而不删除资源组
- python - 如何将 Django 视图响应发送到模态?
- android - AltBeacon 看不到 eddystone 设备
- regex - 如何在记事本++中找到最后一个字符“A”的记录