摘要:
目录一、快速排序1、数组实现2、链表实现二、归并排序1、数组实现2、链表实现三、、堆排序1、大根堆(用来升序)数组存储2、小根堆(用来降序)数组存储四、字典树(Trie)的实现五、树的非递归遍历1、前序2、中序3、后序六、其他常考代码1、求二叉树的最大深度?2、判断是否为平衡二叉树? 一、快速排序 阅读全文
摘要:
LRU全称是Least Recently Used,即最近最久未使用的意思。 LRU算法的 设计原则 是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。 实现LRU: 1.用一个数组来存储数据,给每一个 阅读全文
摘要:
[TOC] 1、JVM内存模型 堆,栈,本地方法栈,方法区,程序计数器 2、GC 新生代收集器 :Serial(单线程)、ParNew、Parallel Scavenge; 老年代收集器 :Serial Old(单线程)、Parallel Old、CMS; 整堆收集器 :G1 整体使用的分代回收算法 阅读全文
摘要:
[TOC] 1、volatile的原理 1. 如何保持可见性: 1)将当前处理器缓存行的数据写回到系统内存。 2)这个写回内存的操作会使在其他CPU里缓存了该内存地址的数据无效。 2. 使用优化 使用volatile变量时,可以用一种追加字节的方式来优化队列出队和入队的性能 是不是在使用volati 阅读全文