黑马程序员_反射2

 

 ---------------------- android培训java培训、期待与您交流! ----------------------

数组的反射

1.具有相同维数和元素类型的数组属于同一类型,即具有相同的Class实例对象。

2.代表数组的Class实例对象的getSupperClass()方法返回的父类为Object类对应的Class

3.基本类型的一维数组可以被当做Object类型使用,不能当做Object[]使用;非基本类型的一维数组既可以当做Object使用,也可以当做Object[]使用。

 int[]a1 = new int[3];
  int[]a2 = new int[4];
  int[][]a3 = new int[2][3];
  String[]a4 = new String[3];
  System.out.println(a1.getClass() == a2.getClass());
  System.out.println(a1.getClass() == a3.getClass());//false
  System.out.println(a1.getClass() == a4.getClass());//false
  System.out.println(a1.getClass().getName());
  System.out.println(a1.getClass().getSuperclass().getName());
  Object obj1 = a1;
  Object obj12 = a1;
  //Object[] obj3 = a1;//int 基本类型无法转换成Object
  Object[] obj4 = a3

hashCode方法与HashSet类

HashSet就是采用哈希算法存取对象的集合,它内部采用对某个数字n进行取余的方式对哈希码进行分组和划分对象的存储区域。Object类中定义了一个hashCode()方法来返回每个Java对象的哈希码,当从HashSet集合查找某个对象时,Java系统首先 调用对象的hashCode()方法获取得该对象的哈希码,然后根据哈希码找到相应的存储区域,最后取出该存储区域的每个元素与该对象进行equals方法比较,这样不用遍历集合中的所有元素就可以得出结论。

 Collection collection = new HashSet();
  ReflectPoint pt1 = new ReflectPoint(3, 3);
  ReflectPoint pt2 = new ReflectPoint(5, 5);
  ReflectPoint pt3 = new ReflectPoint(3, 3);
  pt1.y = 7;
  collection.remove(pt1);
  System.out.println(collection.size());

内存泄露

对象不再被使用,但没有被释放,一直占用着内存空间,称为内存泄露。

---------------------- android培训java培训、期待与您交流! ----------------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值