和同学聊天聊到了缓存,他向我抱怨,咱们老是说缓存,但是怎么感觉什么地方都有缓存,有时就会不知道你在说哪种缓存?
我回头想想,也是我们再很多地方都有见过缓存:
1. 服务器端缓存
当然服务器端缓存作用很多,我最常见的是缓存数据库内容,防止不断向数据库读取同样的内容,适用于读写比大于10的。
2. 客户端缓存
也称为浏览器缓存,主要保存的是网页、图片、cookie等信息。在Internet选项中可以查看:
3. APPLET缓存
为了防止每次从服务器上获取Applet文件,浏览器可以利用缓存进行优化:
如果你点击键盘上的x,就会清空缓存。
4. 算法中的缓存
往往是利用空间换时间的,比如斐波拉契数列就是,如f(n)是缓存的话,在计算f(n)的时候新建,在计算完f(n+2)之后缓存失效。以此避免重复计算,减小时间复杂度。
5. 类、设计模式中的缓存
比如单例模式、多例模式中用单例或者MAP进行缓存,这种缓存往往不会失效。
又比如Integer.valueOf()也是用到了缓存思想。