数据结构
-
Redis 和 Memcached 的区别
人们就是一群奇怪的动物,总是拿来相互比较。于是就造成了,我们从小比吃穿,比学习,比成绩,比谁先结婚,比谁工作的好,比谁有房有车的坏习惯。一直衍生到写程序的世界,比各种框架、产品的优…
-
Redis 是单线程结构,但为何单线程还能支持高并发?
现在随便问一个程序员都能大谈特谈 Redis,但是你在深入一点问他:Redis 是单线程结构的,但为何单线程还能支持高并发?你一想,好像有点矛盾啊。和我们理解的有点不一样啊,高并发…
-
Java HashMap 的死循环(HashMap Infinite Loop)
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死…
-
Java 类的生命周期
Java 之所以流行是因为 Java 总有从出不穷的新框架推出。Java 之所以被众多的开发者支持是因为它在众多的商业领域变现出出色的稳定性。这一切都和 Java 的设计有关,为了…
-
java8 Stream 教程
在jdk中有许多集合类数据结构,提供了丰富的集合api,但是它们对一些复杂的转换处理上依然显得笨重与繁琐,且这些容器对数据处理上并没有提供一些直观便捷的操作,于是后来commons…
-
java实现跳表(SkipList)
前面的《从摔鸡蛋问题讲跳表的原理》中,我简单说了下跳表的相关知识,限于篇幅没有实现代码,只是列举了算法和思路。本文使用java来实现一个跳表算法。 直接上代码,如下: packag…
-
Redis、MongoDB、BerkeleyDB、Memcached等NoSQL数据库总结
随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,于是NoSQL就应用而生。目前…
-
Lucene 安装和应用实战
这篇文章我们将进入 Lucene 的实战阶段,我们将通过 Lucene 的一个简单入门程序,来实现它对全文检索,高效的搜索应用。 下载 http://jakarta.apache.…
-
lucene 创建索引步骤
索引是现代搜索引擎的核心,建立索引的过程就是把源数据处理成非常方便查询的索引文件的过程。为什么索引这么重要呢,试想你现在要在大量的文档中搜索含有某个关键词的文档,那么如果不建立索引…
-
spring mvc原理,设计架构,架构图和解决的实际问题
面试中经常会被问到Spring MVC 和其他MVC框架的区别,以及Spring Mvc的原理。本文将通过Spring MVC框架的原理,执行流程,解决的实际问题等方面出发,讲明S…