当前位置: 首页 > 知识库问答 >
问题:

Java数组声明混乱[重复]

胥承
2023-03-14
public static void main(String[][] args) {
    System.out.println(args[0][1]);
}
public static void main(String[] args) {
    ThisClass app = new ThisClass();
    String[][] newargs = {args};
    app.main(newargs);
}

如果您编译它,然后用java ThisClass a b c运行它,它将打印:b

...所以它要取第一个数组,并自动包装它以适应二维数组??真奇怪。有人能解释一下这是怎么回事吗?我很确定我错过了什么。

共有1个答案

郎欣然
2023-03-14

正在调用第二个main函数(使用String[]作为参数的函数)。

在此函数中,您将newargs创建为只包含一个元素的二维数组,该元素就是数组{a,b,c}

因此,当您打印参数[0][1]时,您将打印数组{a,b,c}的索引1处的元素,即b

 类似资料:
  • 既然String是JAVA中的一个类,那么在不使用新运算符的情况下,test1如何成为String对象呢?另外,当使用新运算符时,内存会分配给新的String(“testing”),那么在test1的情况下,内存是如何分配的呢?另外,当字符串被临时存储时,如果两个字符串具有相同的值,引用的是什么,那么该字符串在字符串临时存储池中存储一次?

  • 问题内容: 看完之后,我才知道,是物体。数组的名称不是实际的数组,而只是引用。new运算符在堆上创建数组,并返回对新创建的数组对象的引用,然后将其分配给数组变量(名称)。类似于以下内容: 但是我也使用了这两种类型的数组声明。 和 以上两项均合法且可以正常工作。那么这两者之间有什么区别,我应该何时使用它们? 问题答案: 这将生成一个大小为5的数组,其中包含5个null元素: 如果这些值在编译时不是您

  • %1有编译器错误,而%2是合法的。 为什么变量声明的类型必须与我们传递给对象类型的类型匹配(不允许派生类型)?我使用的数组如下所示,这是完全正确的: 有人能告诉我为什么集合必须声明为条件2吗?谢谢

  • 我习惯像这样声明数组内联: 为什么我不能对函数执行相同的操作?假设我有一个类,其中包含and 方法,这是有效的: 但是,这不是: 它不喜欢内联数组声明,编译器错误是“不能创建函数的泛型数组” 编辑 我认为我的问题不是建议的副本,因为我想使用数组初始值设定项语法静态定义一组函数

  • 问题内容: 我正在运行Tomcat应用程序,并且需要显示一些时间值。不幸的是,时间要花一个小时了。我调查了一下,发现我的默认TimeZone设置为: 而不是太平洋时区。当我尝试打印默认时区的显示名称时,这会进一步指示,并且显示为 “ GMT-08:00”,这似乎向我表明它未正确设置为美国太平洋时区。我在从Gutsy Gibbon升级的Ubuntu Hardy Heron上运行。 我是否可以更新配置

  • 数组要占用内存空间。程序员指定每个元素的类型和每个数组所要的元素,使编译器可以保留相应的内存空间。要告诉编译器对整型数组c保留12个元素,可以声明如下: int c[12]; 可以在一个声明中为几个数组保留内存。下列声明对整型数组 b 保留 100 个元素,对整型数组x保留27个元素: int b[100],x[27]; 数组可以声明包含其他数据类型。例如,char 类型的数组可以存放字符串。字符