日期:2014-05-20  浏览次数:20580 次

什么是java的缓存?
查了下缓存的概念,就是比内存还快的一片存储区域。那么java的缓存技术又是什么呢?把数据放到内存中算是缓存吗?还是必须放到缓存中?相当迷糊,请高手指点!

------解决方案--------------------
就是比内存还快的一片存储区域
明显不对啊,缓存数据可以放在内存中,也可以放在硬盘中。这都是缓存。
内存的速度是最快的。缓存做的最多的也是把数据放在内存中。
------解决方案--------------------
缓存是指临时文件交换区,电脑把最常用的文件从存储器里提出来临时放在缓存里,就像把工具和材料搬上工作台一样,这样会比用时现去仓库取更方便。因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在忙完后还是会把文件送到硬盘等存储器里永久存储。电脑里最大的缓存就是内存条了,最快的是CPU上镶的L1和L2缓存,显卡的显存是给GPU用的缓存,硬盘上也有16M或者32M的缓存。千万不能把缓存理解成一个东西,它是一种处理方式的统称!
------解决方案--------------------
我操,TMD CSDN,老子打那么多字,一个鸟错误,不能提交,自动刷新没了!!!

再简单说一下

楼主查询到的缓存概念是硬件级的,在PC机里,在计算效率方面一般指CPU的缓存。


java里缓存可以分两种情况,一种是JVM的缓存,这个是JVM与操作系统打交道用的,在使用java语言开发时,一般不用到。

一种是java语言缓存,这里的缓存是一种机制,不与任何硬件相关。比如一个 static的变量, 当第一次访问他时我们到文件里读他的值,以后访问时,直接把这个值返回去,这里省下了IO的时间,提高了效率,这就是一个简单的缓存机制


------解决方案--------------------
缓存有很多种,用于暂时存放的基本都可以叫做缓存,你说的比内存还快的缓存 应该是说的是CPU的一、二级缓存 吧,那个是CPU用于和内存建立组相连映射以提高访存速度的CPU内置的高速存取访问电路也就是计算机里面的术语“Cache”,显然JAVA中的缓存不是指这个啊,Java中的缓存 我想应该就是指的是一组用于提高IO性能的内存地址,它位于JVM中,那么显然在内存或者磁盘中。
探讨
查了下缓存的概念,就是比内存还快的一片存储区域。那么java的缓存技术又是什么呢?把数据放到内存中算是缓存吗?还是必须放到缓存中?相当迷糊,请高手指点!

------解决方案--------------------
一般程序用到的缓存就是内存了。

最典型的例子数据库缓存,比如一些不变的数据内容,从数据库查出来以后不回去经常修改它而又经常要用到的就可以考虑做一个缓存,以后读取就从缓存来读取,而不必每次都去查询数据库了。

因为硬盘的速度比内存的速度慢的多。

缓存的出现就会为了解决这个问题。
------解决方案--------------------
所谓缓存就是指内存或者硬盘中的一块区域,把常用的数据放在里面,要用的话,直接从里面拿就可以了,速度会快很多
------解决方案--------------------
Cache 和 Buffer 的区别, 
一个是硬件上的缓存,一个软件上的缓存。
即Cache存储速度的确比内存快,但是Buffer是一致的,
但是原理是一致的,利用局部性原理。
------解决方案--------------------
查了下缓存的概念,就是比内存还快的一片存储区域。

您查的是CPU缓存,和我们平时写程序所说的缓存完全是两回事。
------解决方案--------------------
缓存是指临时文件交换区,电脑把最常用的文件从存储器里提出来临时放在缓存里,就像把工具和材料搬上工作台一样,这样会比用时现去仓库取更方便。因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在忙完后还是会把文件送到硬盘等存缓存,硬盘上也有16M或者32M的缓存。千万不能把缓存理解成一个东西,它是一种处理方式的统称! 
 
具体情况具体分析java里也有很多种不同的缓存,就拿Hibernate来说,他也有自己的缓存,分为一级缓存Session,二级缓存SessionFactory等,楼主你能在说的具体点吗?

------解决方案--------------------
BufferedInputStream!