摘要: HashTable,它与HashMap不同之处有两点:1.HashTable是线程安全的 2.HashTable不允须key或者value为null。 1.属性 2.构造器 3.方法 3.1 put(K key,V value):将指定key映射到此Hash表中的指定value 进入rehash方法 阅读全文
posted @ 2018-07-23 11:08 51life 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 1.为什么需要红黑树? 对于二叉搜索树,如果插入的数据是随机的,那么它就是接近平衡的二叉树,平衡的二叉树,它的操作效率(查询,插入,删除)效率较高,时间复杂度是O(logN)。但是可能会出现一种极端的情况,那就是插入的数据是有序的(递增或者递减),那么所有的节点都会在根节点的右侧或左侧,此时,二叉搜 阅读全文
posted @ 2018-07-19 14:06 51life 阅读(7936) 评论(0) 推荐(0) 编辑
摘要: 我们先了解有序数组和链表两种数据结构:有序数组,可以通过二分查找法快速的查询特定的值,时间复杂度为O(logN),可是插入删除时效率低,平均要移动N/2个元素,时间复杂度为O(N)。链表:查询效率低,平均要比较N/2个元素,时间复杂度O(N),插入和删除效率较高,O(1)。二叉树的特点是结合了有序数 阅读全文
posted @ 2018-07-16 16:05 51life 阅读(4697) 评论(0) 推荐(2) 编辑
摘要: HashMap,非线程安全,允许使用null键和null值,这是它与HashTable的区别。 一 源码分析(基于JDK1.7) 1.属性 我们知道HashMap的底层结构是数组+链表Entry,也就是说table数组中存放的是Entry,而我们put(key,value)中的key和value存放 阅读全文
posted @ 2018-07-12 13:38 51life 阅读(318) 评论(0) 推荐(1) 编辑
摘要: 一:为什么使用内部类? 1.每个内部类都能够独立的继承自一个(接口的)实现,所以无论外部类是否继承了一个(接口的)实现,对这个内部类都没有影响。 2.内部类提供了更好的封装,只有外部类能访问内部类。 二:内部类的使用 1.成员内部类: 如果一个类定义在了另一个类的内部,那么这个类就是成员内部类。成员 阅读全文
posted @ 2018-07-12 10:28 51life 阅读(167) 评论(0) 推荐(1) 编辑
摘要: vector的底层存储结构是数组,和ArrayList一样,不同的是vector是线程安全的,而ArrayList不是线程安全的。进入源码分析 1.属性 2.构造器 3.方法 add(E e):将指定元素添加到此向量的末尾 remove(int index):移除指定位置的元素 其它方法也是类似,这 阅读全文
posted @ 2018-07-10 09:49 51life 阅读(165) 评论(0) 推荐(0) 编辑
摘要: LinkedList,链接列表,它的底层结构是链表。它的特点是增删效率高,查询效率低。下面我们仍然从属性,构造器和方法三个方面来分析源码。 1.LinkedList的属性 这里有一个Node类,它是LinkedList的节点元素,承载着存放在LinkedList中的值,看下Node类 附上Linke 阅读全文
posted @ 2018-07-09 16:58 51life 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 对于ArrayList,顾名思义,称之为数组列表。要明白,它的底层结构是数组,也就是说,ArrayList存储的元素其实是放在了它内部的一个数组中,对ArrayList的操作,其实就是对它内部这个数组的操作。接下来,我们从它的属性,构造器,方法三个方面来分析源码。 1.ArrayList的属性 2. 阅读全文
posted @ 2018-07-06 09:53 51life 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 现在,我们将对代理对象的生成过程进行分析。 在spring AOP源码分析(一)的例子中,将会生成哪些对象呢? 可以看到将会生成六个对象,对应的beanName分别是: userDao:目标对象 logger:定义的切面 InternalAutoProxyCreator:用来生成代理对象的后置处理器 阅读全文
posted @ 2018-07-04 16:50 51life 阅读(1483) 评论(0) 推荐(0) 编辑
摘要: BeanPostProcessor的作用是在调用初始化方法的前后添加一些逻辑,这里初始化方法是指在配置文件中配置init-method,或者实现了InitializingBean接口的afterPropertiesSet方法,注意不包括@PostConstruct这种初始化方式。可以看源码Abstr 阅读全文
posted @ 2018-07-02 16:36 51life 阅读(604) 评论(0) 推荐(0) 编辑