一、反射机制的定义
JAVA反射机制是在运行状态_中,对于任意一个类 (class文件),都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
python进阶学习四(面向对象)
HashMap详解
一、HashMap
hashmap在元素size超过负载因子对应数的时候就会扩容,但是其实还有一种情况也会扩容,那就是链表上Node数量大于等于8且tab数组长度小于64的时候的时候。
HashMap的结构是哈希表,底层维护了一个Node数组(Jdk 8之后,之前是HashMap.Entry数组),它是集合框架里非常常用的集合类,和ArrayList一样,使用非常频繁,HashMap的初始容量是16,加载因子是0.75,当在一个位桶发生哈希冲突(也叫哈希碰撞)的时候,添加的元素会依次存放在该位置的最后一个元素后面(形成链表),链表数量大于8且HashMap元素大小小于64时,这条链表就会转成就会转成红黑树,注意一定两个条件都满足才会转成红黑树,不要忽略了64这个数,平时很多博客说链表大于8就转红黑树大概是因为在工程上链表大于8了基本上HashMap存储的元素大于64,否则说明这个HashMap的hash函数设计的不好,基本上算出来的值都是同一个,也就是说产生了哈希碰撞。而实际上HashMap的hash函数是已经高度优化了的,所以某条链表节点数大于8而总节点数小于64发生的概率极低,当然要知道这个逻辑。