有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

关于数组的java新手问题

有人能帮我回答这两个问题吗?我已经阅读了官方文件,想确认一下

  1. 创建对象数组时会发生什么情况

    a.数组包含初始化为null或0的指定类型的对象

    b.数组包含对程序中先前创建的指定类型的对象的引用

    c.数组包含在程序前面创建的指定类型的对象

    d.数组包含用于引用指定类型对象的位置

我选择B选项

  1. 什么与数组标识符相结合以提供对数组中单个元素的引用

    a.变量

    b.原始价值

    c.数组值

    d.指数值

我选择D选项,因为标识符是ex“int[]”的标识符,并且在括号中放置索引

先谢谢你


共 (1) 个答案

  1. # 1 楼答案

    对于问题1,答案是(应该是)

    a. the array contains objects of the specified type of initialized to null or 0

    我说应该是,因为这里有个错误。因为我们讨论的是Objects数组(而不是基元类型),所以默认值将始终是null,而不是0(对于intarray数组就是这种情况)

    您希望它包含以前创建的实例吗?那么,在下一个片段中,您认为数组的内容是什么

    String one = "one";
    String two = "two";
    String three = "three";
    
    String[] myArr = new String[2];
    

    JVM不知道您想要在其中包含什么,如果您想要之前存在的实例,那么您想要哪些实例,因为数组中的空间比现有的多1个

    因此,除非特别设置为值,否则在创建数组之后,元素包含该类型的default value,对于Objects,即null

    你对第二个问题的假设是正确的。 它实际上是指存储在数组特定位置的实例的索引

    所以:

    String[] arr = {"First element", "Second element"};
    String element = arr[0]; // arrays are 0-based
    System.out.println(element); // will print "First element"
    

    然而,这里也有一些模糊之处:

    b. primitive value
    

    也可以认为是正确的(取决于解释),因为索引始终是原始值。但我会坚持回答D。它们可能意味着与原始值完全不同的东西(我认为它们是这样的),但这不能从问题中完全确定