-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
一. 数组的反射:
a) 具有相同维数和元素类型的数组属于同一个类型,即具有相同的Class实例对象.
b) 代表数组的Class实例对象的getSuperClass()方法返回的父类为Object类对应的Class.
c) 基本类型的一维数组可以被当作Object类型使用,不能当作Object[]类型使用,非基本类型的一维数组,既可以当做Object类型使用,又可以当做Object[]类型使用
二. ArrayList-HashSet的比较及Hashcode分析:
a) equals()和hashCode()方法的重写
b) 当一个对象被存储进HashSet集合中以后,就不能修改这个对象中的那些参与计算哈希值的字段了,否则,对象修改后的哈希值与最初存储进HashSet集合中的哈希值就不同了,在这种情况下,即使在contains方法使用该对象的当前引用作为的参数去HashSet中检索对象,也将返回找不到对象的结果,这也会导致无法从HashSet集合中单独删除当前对象,从而造成内存泄露.
三. 反射的作用:实现框架功能
a) 框架与框架要解决的核心问题
i. 我做房子卖给用户住,由用户自己安装门窗和空调,我做的房子就是框架,用户需要使用我的框架,把门窗插入进我提供的框架中,框架与工具类有区别,工具类被用户的类调用,而框架则是调用用户提供的类
b) 框架要解决的核心问题
i. 我在写框架怎么调用到用户以后写的类了
ii. 因为在写程序时无法知道要被调用的类,所以无法直接NEW某个类的实例对象,而要用反射来做.