我在这里有关于java web应用程序中的缓存技术的问题。
假设我实现了ehcache,其中将存储缓存数据?
缓存的数据是否会在GC覆盖范围内?我的意思是GC会删除我之前缓存的java对象吗?
在阅读了一些缓存的框架网站之后,我明白在核心层面他们(缓存框架)正在使用hastable或hashmap,其中数据将是我们的值,关键取决于逻辑。假设在ehcache中 maxBytesLocalHeap ="50米" maxBytesLocalDisk =" 50G" 1.我在这里理解的是50Mb(maxBytesLocalHeap)将存储在堆内存中(GC会观察到此内存下的数据), 2.如果maxBytesLocalDisk 50GB将存储在本地磁盘中(假设文件将作为平面文件存储在服务器的临时文件夹中),那么GC将不关心实体或对象,因为它不在堆内存中。
我的理解是否正确?
由于 维杰
答案 0 :(得分:0)
只有当其他任何对象没有引用时,GC才会删除您的对象。 GC不知道它只查找单独对象的缓存数据。
是的,HashMap通常用于存储缓存数据并在需要时检索它。