黑马程序员技术交流社区

标题: 数组属于自己的类吗? [打印本页]

作者: 李政    时间: 2013-8-5 17:23
标题: 数组属于自己的类吗?
本帖最后由 杨兴庭 于 2013-8-7 18:04 编辑

在学到注释类的时候,联想到了好些问题
让我把java的数据类型搞的很糊涂

数组也是一个对象,那么它有属于自己的类吗?
数组是属于class这种引用数据类型的体系吗? 是不是与class同级的?
与class同级的引用数据类型都有哪些呢?interface  @interface enum 这些是吗

作者: 佟都    时间: 2013-8-5 18:13
本帖最后由 佟都 于 2013-8-6 00:11 编辑

可以用反射自己写段代码验证下

  1. import java.lang.reflect.*;
  2. import java.util.Arrays;

  3. public class ReflectTest {
  4.   public static void main(String[] args) throws Exception {
  5.      String str1 = "abc";     
  6.      //数组的反射操作
  7.      //int [] a1 = new int[3];
  8.      int [] a1 = new int[]{1, 2, 3};
  9.      int [] a2 = new int[4];
  10.      int[][] a3 = new int[2][3];
  11.      //String [] a4 = new String[3];
  12.      String [] a4 = new String[]{"a", "b", "c"};
  13.      
  14.      Class a1Clz = a1.getClass();
  15.      Class a2Clz = a2.getClass();
  16.      Class a3Clz = a3.getClass();
  17.      Class a4Clz = a4.getClass();
  18.      System.out.println("a1Clz == a2Clz is "+ (a1Clz == a2Clz));
  19.      System.out.println("a1Clz == a3Clz is "+ (a1Clz == a3Clz));
  20.      System.out.println("a1Clz == a4Clz is "+ (a1Clz == a4Clz));
  21.      //JDK1.6 : Incompatible operand types Class
  22.      //System.out.println(a1.getClass() == a4.getClass());
  23.      //获取Array的Class类型名
  24.      System.out.println("a1.getClass().getName() = "+ a1Clz.getName());
  25.      //获取Array的父类Class类型名
  26.      System.out.println("a1Clz.getSuperclass().getName() = "+ a1Clz.getSuperclass().getName());
  27.      System.out.println("a4Clz.getSuperclass().getName() = "+ a4Clz.getSuperclass().getName());
  28.   }  
  29. }
复制代码

作者: 心灵之歌    时间: 2013-8-5 18:44
数组在内存中的存储是以对象的形式存在,数组是属于引用类型!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2