【问题标题】:In Java, is a char[] an object?在 Java 中,char[] 是一个对象吗?
【发布时间】:2010-11-10 17:00:13
【问题描述】:

我是 Java 新手,但如果我理解正确的话,char 是一种原语。

执行 char temp 和 temp.hashCode() 不会编译,但执行 char[] temp2 = new char[2] 和 temp2.​​hashCode() 将编译并执行。

这是否意味着 char[] 是一个对象???

【问题讨论】:

    标签: java arrays object primitive-types


    【解决方案1】:

    char 是一个基元,但 char 类型的数组是一个对象

    一种判断方法是动态实例化它:

    final Object charArray = Array.newInstance(Character.TYPE, 5);
    System.out.println(charArray.getClass().getComponentType());
    

    输出:

    字符

    Character.TYPE 是对原始类char 的引用。访问该类的另一种方法是通过char.class

    【讨论】:

    • 这是你访问该类的唯一方法。错了,你可以使用char.class
    • @Willi 是的,忘记了。编辑了我的答案
    • 另一个有趣的点,char.class 只是对Character.class 的引用(根据docjar.com/html/api/java/lang/Character.java.html)。所以我想我们都是对的;)
    • 对Character.TYPE的引用,即。
    【解决方案2】:

    是的。所有的数组都是对象,甚至是原始类型的数组。

    【讨论】:

      【解决方案3】:

      是的,所有数组都是 Java 中的对象。

      【讨论】:

        【解决方案4】:

        是的,每种类型的每个 Array 都是一个对象。

        【讨论】:

          【解决方案5】:

          是的,数组是java中的对象。

          【讨论】:

            【解决方案6】:

            数组不仅仅是几个基本类型,它还有一个“长度”字段。原始类型没有字段。将数组与原始类型分开的另一件事是它们是引用,因此必须进行垃圾回收。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-08-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-02-05
              相关资源
              最近更新 更多