摘要:
实例化 Instantiation 属性赋值 Populate 初始化 Initialization 销毁 Destruction 实例化 → 属性赋值 → 初始化 → 销毁 阅读全文
摘要:
获取class字节码文件常用的三种方法 Class clazz=Class.forName("包.类名称") //在源文件阶段获取class字节码文件 Class clazz=类名.Class //在编译阶段获取class字节码文件 Class clazz=类对象.getClass() //在运行阶 阅读全文
摘要:
1.调用元素的hashCode()方法获取元素的哈希值 2.通过哈希值和数组长度获取元素的存储位置(底层是与运算,可以理解为取余) 3.如果该位置没有元素存在,元素唯一,将该元素存储在该位置 4.如果该位置有元素存在,遍历该位置链表的所有元素,和新存入的元素比较哈希值 5.哈希值都不相同,元素唯一, 阅读全文
摘要:
垃圾回收机器(Garbage Collection),也叫GC,垃圾回收器主要有一下特点: 当对象不再被程序所使用的时候,垃圾回收器将会将其回收 垃圾回收是在后台运行的,我们无法命令垃圾回收器马上回收资源,但是我们可以告诉他可以尽快回收资源(System.gc()和Runtime.getRuntim 阅读全文
摘要:
 阅读全文
摘要:
在解决这个问题之前,我们首先需要知道什么是哈希冲突,而在了解哈希冲突之前我们还要知道什么是哈希才行;什么是哈希? Hash,一般翻译为“散列”,也有直接音译为“哈希”的,这就是把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值(哈希值);这种转换是一种压缩映射,也就是,散列值的空间 阅读全文
摘要:
①.判断键值对数组table[i]是否为空或为null,否则执行resize()进行扩容; ②.根据键值key计算hash值得到插入的数组索引i,如果table[i]==null,直接新建节点添加,转向⑥,如果table[i]不为空,转向③; ③.判断table[i]的首个元素是否和key一样,如果 阅读全文
摘要:
 阅读全文
摘要:
HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap的数据结构: 在Java编程语言中, 基本的结构就是两种,一个是数组,另外一个是模拟指针(引用 阅读全文
摘要:
反射是框架设计的灵魂。 在平时的项目开发过程中,基本上很少会直接使用到反射机制,但这不能说明反射机制没有用,实际上有很多设计、开发都与反射机制有关,例如模块化的开发,通过反射去调用对应的字节码;动态代理设计模式也采用了反射机制,还有我们日常使用的 Spring/Hibernate 等框架也大量使用到 阅读全文