Tag Archives: hashtable

有关缓存,缓存算法,缓存框架:part 1

文章来自:http://www.jtraining.com/component/content/article/35-jtraining-blog/98.html 文章翻译:ZavaKid的技术博客 这篇文章很有意思,以一个程序员的面试拉开序幕,很有趣的介绍了缓存的有关话题。这个系列的文章很有意思,恰巧我这个月的计划也有学习Cache的计划,所以我准备翻译这个系列的文章。说是翻译,也只是按照自己的理解潦草的翻译,有不准确的,还请见谅。如果你也很感兴趣,可以去看看原文 引言 我们都听过cache,当你问他们是什么是缓存的时候,他们会给你一个完美的答案,可是他们不知道缓存是怎么构建的,或者没有告诉你应该采用什么标准去选择缓存框架。在这边文章,我们会去讨论缓存,缓存算法,缓存框架以及哪个缓存框架会更好。 面试 “缓存就是存贮数据(使用频繁的数据)的临时地方,因为取原始数据的代价太大了,所以我可以取得快一些。” 这就是 programmer one (programmer one 是一个面试者)在面试中的回答(一个月前,他向公司提交了简历,想要应聘要求在缓存,缓存框架,大规模数据操作有着丰富经验的java开发职位)。 programmer one 通过hashtable实现了他自己的缓存,但是他知道的只是他的缓存和他那存储着150条记录的hashtable,这就是他认为的大规模数据(缓存 = hashtable,只需要在hashtable查找就好了),所以,让我们来看看面试的过程吧。 面试官:你选择的缓存方案,是基于什么标准的? programmer one:呃,(想了5分钟)嗯,基于,基于,基于数据(咳嗽……) 面试官:excese me! 能不能重复一下? programmer one:数据?! 面试官:好的。说说几种缓存算法以及它们的作用 programmer one:(凝视着面试官,脸上露出了很奇怪的表情,没有人知道原来人类可以做出这种表情 ) 面试官:好吧,那我换个说法,当缓存达到容量时,会怎么做? programmer one:容量?嗯(思考……hashtable的容量时没有限制的,我能任意增加条目,它会自动扩充容量的)(这是programmer one的想法,但是他没有说出来) 面试官对programmer one表示感谢(面试过程持续了10分钟),之后一个女士走过来说:谢谢你的时间,我们会给你打电话的,祝你好心情。这是programmer one最糟糕的面试(他没有看到招聘对求职者有丰富的缓存经验背景要求,实际上,他只看到了丰厚的报酬 )。 说到做到 programmer … Continue reading

Posted in cache | Tagged , , , | Leave a comment