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

© 奋发吧小白 高级黑马   /  2014-9-1 10:29  /  984 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int [] a1 = new int[3];
  2. int [] a2 = new int [4];
  3. int [] [] a3 = new  int [2] [3];
  4. String [] a4 = new String[3];
  5. System.out.println(a1.getClass() == a2.getClass());
  6. System.out.println(a1.getClass() == a3.getClass());
  7. System.out.println(a1.getClass() == a4.getClass());
复制代码
打印结果为;true
false
false
我想请教一下,所谓的字节码,不是类编译完成后生成的那个 类名.class文件吗?
若不是,那是指的什么字节码?
若是的话,那a3.getClass()和a4.getClass()都是在同一个类中,得到的应该是同一个.class文件,为什么会输出false呢?
请大神指教下!反射真的好难理解啊!

1 个回复

倒序浏览
你看下这个打印结果就明白了。
  1. public class ReflectTest {

  2.         public static void main(String[] args) {
  3.                 // TODO Auto-generated method stub
  4.                 int [] a1 = new int[3];
  5.                 int [] a2 = new int [4];
  6.                 int [] [] a3 = new  int [2] [3];
  7.                 String [] a4 = new String[3];
  8.                
  9.                 Class a1c,a2c,a3c,a4c;
  10.                
  11.                 a1c = a1.getClass();
  12.                 a2c = a2.getClass();
  13.                 a3c = a3.getClass();
  14.                 a4c = a4.getClass();
  15.                
  16.                  
  17.                 System.out.println("a1.getClass(): " + a1c.getName());
  18.                 System.out.println("a2.getClass(): " + a2c.getName());
  19.                 System.out.println("a3.getClass(): " + a3c.getName());
  20.                 System.out.println("a4.getClass(): " + a4c.getName());
  21.                
  22. //                System.out.println(a1.getClass() == a3.getClass());
  23. //                System.out.println(a1.getClass() == a4.getClass());
  24.         }
  25. }
复制代码


结果是:
a1.getClass(): [I
a2.getClass(): [I
a3.getClass(): [[I
a4.getClass(): [Ljava.lang.String;

你的a3 对象所属的是一个二维int型数组类 其实就是int[][].class, a4这个对象是String一维数组类就是String[].class这个类。
不是看你把这两个对象用在哪个类里就能用getClass得到使用他们的那个对象所属的类,getClass方法的概念要弄清楚。
字节码的话,应该是.class。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马