main 参数数组中的第一个元素是什么?
先说出你的答案
定义边界、关键机制、一个反例;P8题再补容量、失败与验证。
查看完整题解
参考回答
直接回答
args[0] 是传给 Java 程序的第一个应用参数,不是类名,也不是 java 命令本身。没有应用参数时,数组长度为 0;这时访问 args[0] 会抛 ArrayIndexOutOfBoundsException。
讲清原理
例如 java Hello alpha beta 中,启动器先用 Hello 确定入口类,再把 alpha 和 beta 作为应用参数传给 main。JVM 启动选项、类名与应用参数各有自己的位置和解释规则,不能全部算进 args。
参数怎样切分,还受 shell 的引号、空格与转义规则影响。它们最终进入 main 时都是字符串;需要数字时由程序自己解析,并处理错误输入。
例子与易错点
public class Arguments {
public static void main(String[] args) {
if (args.length > 0) System.out.println(args[0]);
else System.out.println("没有参数");
}
}
运行 java Arguments first second 打印 first。编写入口逻辑时先检查长度,不要把“测试时总有参数”当作程序保证。
相关题:第 12 题、第 14 题。
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。