A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李政 中级黑马   /  2013-8-5 17:23  /  1208 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-8-7 18:04 编辑

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

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

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 佟都 于 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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
数组在内存中的存储是以对象的形式存在,数组是属于引用类型!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马