【问题标题】:Array = complexe data type = class?数组 = 复杂数据类型 = 类?
【发布时间】:2021-12-25 16:52:06
【问题描述】:

我了解到有两种类型的数据类型(complexprimitive)。区别应该在于复杂数据类型具有或可以输出多个内容。我已将 String 或扫描仪作为示例。

我还了解到复杂的数据类型只不过是。使用“new”的赋值然后从这些类/复杂数据类型创建对象,这些类/复杂数据类型又可以称为目标或复杂变量

现在,对于 数组,我不确定这是相同的还是应该有不同的理解。因为使用数组(至少在 java 中)进行了附加声明,例如 int [] = new int [6];由于它看起来与其他复杂的数据类型非常不同,并且数组也被称为数据结构,我想知道我是否正确理解了所有内容以及是否也可以将其转移到数组中。

【问题讨论】:

    标签: java arrays class data-structures


    【解决方案1】:

    在 Java 数组中是引用,正如前面所说, int[] 数组 = 新的 int[]{1,2,3}; 但是在 Java 中要小心,一些原始类型在引用类型中有类似的类型(int - Integer、double - Double 等)。 https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html。 有时装箱/拆箱会产生浪费内存和 NullPointerException。 但是,装箱/拆箱不适用于数组(标准工具)

    【讨论】:

      【解决方案2】:

      在java中,数组只是一个对象($4.3.1),你可以通过一个简单的main方法自己检查:

      public static void main(String[] args) {
          int[] array = new int[]{1,2,3};
          System.out.println(array.getClass().isPrimitive()); // returns false
      }
      

      【讨论】:

        【解决方案3】:

        在 Java 编程语言中,数组是对象(第 4.3.1 节),是 动态创建,并且可以分配给 Object 类型的变量 (§4.3.2)。 Object 类的所有方法都可以在数组上调用。

        From Oracle docs

        【讨论】:

          【解决方案4】:

          在java中,数组是对象,即使它是一个原始类型的数组。

          例如:

          int[] array = {0,1,2,3};
          // is the same as :
          int[] array = new int[4];
          array[0]=0;
          array[1]=1;
          array[2]=2;
          array[3]=3;
          // array[0] is primitive (int) but array is object
          

          【讨论】:

            猜你喜欢
            • 2013-10-30
            • 2021-08-24
            • 1970-01-01
            • 2010-12-18
            • 2010-09-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多