Class FastReadCache<K,V>

java.lang.Object
org.zkoss.util.FastReadCache<K,V>
All Implemented Interfaces:
Serializable, Cloneable, Cache<K,V>

public class FastReadCache<K,V> extends Object implements Cache<K,V>, Serializable, Cloneable
A CacheMap that the possibility to have cache hit is much more than not. It maintains a readonly cache (so no need to synchronize), and then clone and replace it if there is a miss. Thus, as time goes, most access can go directly to the readonly cache without any synchronization or cloning.

Thread safe.

Since:
6.0.0
Author:
tomyeh
See Also:
  • Constructor Details

    • FastReadCache

      public FastReadCache()
      Constructor.
    • FastReadCache

      public FastReadCache(int maxSize, int lifetime)
      Constructor.
    • FastReadCache

      public FastReadCache(int maxSize, int lifetime, short maxMissCount)
      Constructor.
      Parameters:
      maxMissCount - a short value from 0 to this for sync the read cache, default is 100.
      Since:
      6.5.2
  • Method Details

    • containsKey

      public boolean containsKey(Object key)
      Description copied from interface: Cache
      Returns whether the specified key is stored.
      Specified by:
      containsKey in interface Cache<K,V>
    • get

      public V get(Object key)
      Description copied from interface: Cache
      Returns the object of the specified key, or null if not found.
      Specified by:
      get in interface Cache<K,V>
    • put

      public V put(K key, V value)
      Description copied from interface: Cache
      Stores an object to the cache.
      Specified by:
      put in interface Cache<K,V>
      Returns:
      the previous value of the same, or null if no such value
    • remove

      public V remove(Object key)
      Description copied from interface: Cache
      Removes an object from the cache.
      Specified by:
      remove in interface Cache<K,V>
      Returns:
      the object if found.
    • clear

      public void clear()
      Description copied from interface: Cache
      Clears all objects being cached.
      Specified by:
      clear in interface Cache<K,V>
    • getLifetime

      public int getLifetime()
      Description copied from interface: Cache
      Returns the minimal lifetime, unit=milliseconds. An mapping won't be removed by GC unless the minimal lifetime or the maximal allowed size exceeds.
      Specified by:
      getLifetime in interface Cache<K,V>
      See Also:
    • setLifetime

      public void setLifetime(int lifetime)
      Description copied from interface: Cache
      Sets the minimal lifetime. Default: Cache.DEFAULT_LIFETIME.
      Specified by:
      setLifetime in interface Cache<K,V>
      Parameters:
      lifetime - the lifetime, unit=milliseconds; if non-positive, they will be removed immediately.
      See Also:
    • getMaxSize

      public int getMaxSize()
      Description copied from interface: Cache
      Returns the maximal allowed size. Default: Cache.DEFAULT_MAX_SIZE. An mapping won't be removed by GC unless the minimal lifetime or the maximal allowed size exceeds.
      Specified by:
      getMaxSize in interface Cache<K,V>
      See Also:
    • setMaxSize

      public void setMaxSize(int maxsize)
      Description copied from interface: Cache
      Sets the maximal allowed size.
      Specified by:
      setMaxSize in interface Cache<K,V>
      See Also: