This question already has answers here:
What is “String args[]”? parameter in main method Java
(15个答案)
3年前关闭。
命令行调用为:
java CommandArgsThree 1 2 3
1.上面的命令与以下命令有什么区别:java CommandArgsThree 123,关于不同输入的args类型及其行为是什么。
2,上面的语句是否创建了一个二维字符串数组,即
因为可以通过argCopy [0] [0],argCopy [0] [1]访问
要么
因为可以通过argCopy [0],argCopy [1],argCopy [2],...访问。
您将获得一个包含两个数组(行)的数组,每个数组都有两个元素(列)。默认情况下,数组的值均为
分配时
现在,二维数组的第一行引用的数组与原始引用的数组不同。现在,
当您将单个参数传递给命令行时(如在
(15个答案)
3年前关闭。
public class CommandArgsThree
{
public static void main(String [] args)
{
String [][] argCopy = new String[2][2];
int x;
argCopy[0] = args;
x = argCopy[0].length;
for (int y = 0; y < x; y++)
{
System.out.print(" " + argCopy[0][y]);
}
}
}
命令行调用为:
java CommandArgsThree 1 2 3
1.上面的命令与以下命令有什么区别:java CommandArgsThree 123,关于不同输入的args类型及其行为是什么。
String [][] argCopy = new String[2][2];
2,上面的语句是否创建了一个二维字符串数组,即
null null
null null
因为可以通过argCopy [0] [0],argCopy [0] [1]访问
要么
{null,null,null,null}
因为可以通过argCopy [0],argCopy [1],argCopy [2],...访问。
最佳答案
似乎真正的误解是关于多维数组。
2维数组是其元素引用1维数组的数组。
当您使用初始化数组时
String [][] argCopy = new String[2][2];
您将获得一个包含两个数组(行)的数组,每个数组都有两个元素(列)。默认情况下,数组的值均为
null
。分配时
argCopy[0] = args;
现在,二维数组的第一行引用的数组与原始引用的数组不同。现在,
argCopy
的第一行包含3个String
元素(假设您像在CommandArgsThree 1 2 3
中一样向命令行传递了3个参数),可以使用argCopy[0][0]
,argCopy[0][1]
和argCopy[0][2]
进行访问,并且第二行仍包含原始的2个空值。当您将单个参数传递给命令行时(如在
CommandArgsThree 123
中一样),args
数组包含单个String
元素,因此在分配argCopy[0] = args;
之后,argCopy
的第一行包含1个。关于java - 无法弄清楚Java中命令行参数的概念,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37611912/
10-10 04:15