黑马程序员之反射2
来源:互联网 发布:矩阵数据分析法 编辑:程序博客网 时间:2024/05/16 18:41
---------------------- android培训、java培训、期待与您交流! ----------------------生活在于学习,生活才更加精彩,加油!
数组与Object的关系
数组也是一种类型:每个数组只要维数相同,还有相同的元素类型,那么数组的字节码就是同一份,下面来验证一下:
int[]a1=new int[3];
int[]a2=new int[4];
int[][]a3=new int[2][3];
String[]a4=new String[3];
a1.getClass()==a2.getClass();同一份字节码;
a1.getClass().getName();获得类型的名字;
a1.getClass().getSuperclass().getName();父类名
总结:基本类型不是Object:基本类型一维数组是不能转换为Object数组的
不写for循环,我们怎样遍历数组里面的元素:
Arrays.asList(a1);整数的转不出来。因为asList()接受的是一个Object[] 对象
Arrays.asList(a4);字符串中的元素能打印出来
//对数组的反射
得到数组的值,设置数组的值,还要得到数组的长度:
你给我一个Object我就把他给打印出来:
Public static void print(Object obj){
Class clazz=obj.getClass();
If(clazz.isArray()){
Int len=Array.getLength(obj);
For(int i=0;i<len;i++){
System.out.println(Array.get(obj,i));
}else{
System.out.println(obj);
}
}
}//是数组就把你给拆出来
没办法得到数组的类型?
Object[]a里可以放很多中类型的对象,只能得到其中某一个对象的类型
如a[0].getClass().getName();
//ArrayList 与HashSet的比较:
ArrayList是有顺序的,他相当于一个数组,放进去第一个元素时,内存就会记住,放在第一个位置,用应用变量记住,当你放进去相同的元素时通用能放进去,一个引用变量可以被几个元素对象所引用
HashSet:是没有顺序的,当放进元素对象时,首先要检查equels()方法和HashCode()方法
public int hashCode(){
final int prime=31;
int result=1;
result =prime*result+x;
result =prime*result+y;
return result;
}
Public boolean equals(Object obj){
If(this==obj)
Return true;
If(this==null)
Return false;
If(this.getClass()!=obj.getClass())
Return false;
Final ReflectPoint other = (ReflectPoint)obj;
if(x!=other.x)
return false;
if(x!=other.y)
return false;
return true;
}
hashSet集合中存了一万个元素,如果有相同的就放不进去,为了提高效率发明了哈希算法,分了好多的区域每个区域都有一个值,当把数放进去的时候,先计算这个对象哈希值,符合某个区域的值就会直接到某个区域寻找,而不去其他区域寻找了,提高了效率、当对象一旦被存入后 就不要去改变参与计算哈希值的参数了,否则就会造成内存泄漏
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
- 黑马程序员之反射2
- 黑马程序员之反射
- 黑马程序员之反射
- 黑马程序员之 --- 反射
- 黑马程序员之反射
- 黑马程序员---反射2
- 黑马程序员2--反射
- 黑马程序员之反射1
- 黑马程序员--JAVA之反射
- 黑马程序员--高新技术之反射
- 黑马程序员---高新技术之反射
- 黑马程序员---------------高新技术之反射
- 黑马程序员---高新技术之反射
- 黑马程序员 java之反射
- 黑马程序员---Java之反射
- 黑马程序员-java之反射
- 黑马程序员_JAVA之反射
- 黑马程序员java之反射
- 单链表中判断是否存在环
- MergeSort 的实现
- 递归计算二叉树的高度
- VMware Workstation8 自动启动服务、网卡和启动程序批处理脚本
- 黑马程序员之反射1
- 黑马程序员之反射2
- Android开发——android调试工具集【转】
- Unix调试的瑞士军刀:lsof
- Java虚拟机类加载顺序研究
- 值得思考的一些问题
- 你不一定真正理解的NAT术语
- 制作根文件系统(修正版)
- 78. A young idler, an old begger. 少壮不努力,老大徒伤悲
- 翻译文章-让生活变得简单