摘要: 在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义: 这是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。 O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关 阅读全文
posted @ 2018-09-27 18:45 渔阳nice 阅读(512) 评论(0) 推荐(0) 编辑
摘要: ArrayList : 底层基于数组实现,在使用add方法添加元素时,首先校验集合容量,将新添加的值放入集合尾部并进行长度加一,进行自动扩容,扩容的操作时将数据中的所有元素复制到新的集合中。 在指定位置添加元素时 public void add(int index, E element) { 检查索 阅读全文
posted @ 2018-09-27 17:17 渔阳nice 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 本篇的思路是先阐明无锁执行者CAS的核心算法原理然后分析Java执行CAS的实践者Unsafe类,该类中的方法都是native修饰的,因此我们会以说明方法作用为主介绍Unsafe类,最后再介绍并发包中的Atomic系统使用CAS原理实现的并发类。 无锁的概念 在谈论无锁概念时,总会关联起乐观派与悲观 阅读全文
posted @ 2018-09-27 15:04 渔阳nice 阅读(265) 评论(0) 推荐(0) 编辑