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