Soft reference concurrent cache. It uses a ConcurrentHashMap and a soft reference for the
An entry in a ConcurrentSoftCache will be removed on JVM memory shortage.
A double-reference is used to store the values, so that the finalize() method can be used to
remove the entry from cache when it is collected by the garbage collector.
Note The entry will be removed even if there is a hard reference to it somewhere, since
the double-reference is used.