DataTable,DataSet 本质上是不是缓存??不了解的千万别瞎说。我打赌了,我认为是。
内存里的是MemoryStream,硬盘上的是FileStream,网络上的是NetStream。
DataTable,DataSet 本质是哪种Stream?
缓存本质是什么?
我认为是内存,从数据中找到的数据放在DataTable里面。Datatable和DataSet都是继承System.ComponentModel.MarshalByValueComponent这类的,这个类里面有一个Container我感觉这这个Container和维护缓存使用的HashTable是一样的道理,所以我向Datatable应该是叫缓存把。
0.0所有的内存对象都可以当成是缓存.
你对缓存概念的理解有偏颇
是我理解的有问题。我是不是将两个不同的东西混为一谈了??
比如一个人叫小明,但是“小明”只是两个字,它指向的对象才是一个人。
DataTable的一个实例就是一个对象的引用,而它指向的数据可以当成缓存来使用??
我这么理解有问题么。。谢谢了
@someOneHan: 这样是可以的,
Datatable可以用来实现缓存,但没有什么本质上是缓存的说法
缓存是一种应用场景,或者说功能.而datatable或其它内存对象,是一种工具,这2个是是不同层面的概念
你在很多场景使用同一个工具,在同一个场景你也能选择使用多种工具
缓存是水,DataTable,DataSet等等只是盛水的容器。
DataTable,DataSet 本质上是容器吧,里面的数据倒是可以认为是缓存
不是,因为它不具备缓存(这是个名词)的几大主要特征:
1、无法设置容量;
2、无法设置过期策略;
3、没有并发控制机制;
你说的没错。 他们完全可以做缓存。
但是lz你反过来想一下, 是不是所有的Object都可以做缓存?
他们都在内存里啊!
所有的list, array, 甚至一个object本身, 只要你不从内存删掉, 他都叫缓存啊!
缓存英文叫什么? cache。
标准翻译是:缓冲贮存区,简称缓存。
所以, 只要有缓冲能力, 有贮存能力, 都叫缓存。
只不过, 他们只是简单的缓存,没有高级功能而已。
比如早期的时候, 我们服务器上所有的config, 用一个单例, 全存起来了。
以后不用读数据库了, 直接拿。
那他能不能叫缓存, 为什么能, 为什么不能?
这不重要。 我认为他起到了缓存的作用那他就是缓存。
扯一大堆概念然后证明了他能叫或者不能叫,
这毫无意义
谢谢了。看来我得好好的销习儿啊,
缓存是个大的概念吧,放在文件里也可以叫缓存。比如浏览缓存,服务器对jsp编译后的缓存。