private int hashString(String key) {

        int hash = SEED * random;
        for (int i = 0; i < key.length(); i++)
            hash = (hash * KEY) ^ key.charAt(i);
        return (hash ^ (hash >> 1)) & M_MASK;
    }
Constructs an empty <tt>SafelyHashMap</tt> with the specified initial
capacity and load factor.

@param initialCapacity
           the initial capacity
@param loadFactor
           the load factor
@throws IllegalArgumentException
            if the initial capacity is negative or the load factor is
            nonpositive
src/main/java/com/alibaba/fastjson/util/AntiCollisionHashMap.java