对象缓存,我还不太理解,就是用静态方法得到类的实例,但是怎样做到的缓存,我还不太明白,期待高手的解答,我要深刻的内部堆栈机理

解决方案 »

  1.   

    对象缓存?
    我是这么认为的,当你获得一个对象的时候,如果你是直接new出来的,那么,如果对象的初始化很烦琐,那就会非常消耗时间。为了能更快速的获得对象,可以在整个程序初始化的时候,就事先把一定数量的对象生成,然后保留在内存中,通常保存在一个Map或Queue里,这个专门用于保存对象的Map或Queue通常也称作“池”。当你用一个静态方法获得类的实例,实际上这个静态方法就是从这个“池”中取出一个实例返回的。当你用完这个实例以后,你需要释放它,这里的释放也并非真正的释放,只是把它继续放到“池”中而已。
    不知道这是不是LZ想要问的对象缓存?
    其实现在很多系统都为了实现快速检索,而把数据库的信息保存在内存中,这也是一种对象缓存,就是把数据库关联的entitybean集合保存在内存中,检索的时候首先从内存中检索,检索不到时再从数据库中检索,然后把数据库中检索到的数据保存在内存中。当然,内存是有限的,所以要给缓存分配一个大小,当超过缓存的大小时,可以把一些旧的数据从缓存中删掉,然后再保存新数据。这些都属于题外话了。