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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 公子-醉香 中级黑马   /  2013-12-16 17:21  /  711 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

  3. public class ArrayRef {
  4.         public static void main(String[] args) {
  5.                 // TODO Auto-generated method stub
  6.                 int [] a1=new int []{1,2,3};
  7.                 int [] a2=new int [4];
  8.                 int [][] a3=new int [2][3];
  9.                 String [] a4=new String []{"1","2","3"};
  10.                 System.out.println("--------------------");
  11.                 //判断数组a1和数组a2的字节码是否相同
  12.                 System.out.println("数组a1和数组a2的字节码是否相同"+(a1.getClass()==a2.getClass()));
  13.                 //Array类的一些方法
  14.                 System.out.println("--------------------");
  15.                 System.out.println("a3数组名字"+a3.getClass().getName());
  16.                 System.out.println("a1数组超类的名字"+a1.getClass().getSuperclass().getName());
  17.                 //数组与object[]的对应关系
  18.                 Object obj1=a1;
  19.                 Object obj3=a4;
  20.                 Object [] obj4 =a4;
  21.                 Object obj5 =a3;
  22.                 Object [] obj6 =a3;
  23.                 System.out.println("--------------------");
  24.                 System.out.println("无工具类Arrays的输出"+a1);
  25.                 System.out.println("无工具类Arrays的输出"+a4);
  26.                 System.out.println("--------------------");
  27.                 //调用工具类Arrays的asList()方法
  28.                 System.out.println("--------------------");
  29.                 System.out.println("有工具类Arrays的输出"+Arrays.asList(a1));
  30.                 System.out.println("有工具类Arrays的输出"+Arrays.asList(a4));
  31.                 System.out.println("--------------------");
  32.                 //调用printObject()方法
  33.                 printObject(a1);
  34.                 printObject(1);
  35.         }
  36.         //打印对象中的成员方法
  37.         private static void printObject(Object obj){
  38.                 Class cla=obj.getClass();
  39.                 if(cla.isArray()){
  40.                         System.out.println("调用自定义方法的数组输出");
  41.                         int len=Array.getLength(obj);
  42.                         for(int i=0;i<len;i++){
  43.                                 System.out.println(Array.get(obj, i));
  44.                         }
  45.                         System.out.println("--------------------");
  46.                 }
  47.                 else{
  48.                         System.out.println("调用自定义方法的普通对象输出");
  49.                         System.out.println(obj);
  50.                         System.out.println("--------------------");
  51.                 }
  52.         }
  53. }
  54. /*
  55. 程序分析:
  56. 1.具有相同维数和元素类型的数组的字节码相同,即具有相同的Class实例对象。
  57. 2.通过调用Class实例对象的getName方法可以返回字节码的名字,通过调用Class实例对象的getSuperclass方法可以返回父类
  58. 3.当直接输出数组时,得到的输出结果不理想
  59. 4.通过工具类Arrays的asList方法可以输出数组中参数的值
  60. 5.为了避免工具类Arrays的asList方法的弊端,可以编写自定义的方法进行输出。
  61. */
复制代码


评分

参与人数 1黑马币 +5 收起 理由
乔兵 + 5

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马