int addType(final String value) {
        final int TYPE_TAG = 128;

        int hashCode = 0x7FFFFFFF & (TYPE_TAG + value.hashCode());
        Symbol entry = entries[hashCode % entries.length];
        while (entry != null) {
            if (entry.tag == TYPE_TAG && entry.hashCode == hashCode && entry.value.equals(value)) {
                return entry.index;
            }
            entry = entry.next;
        }
        return addTypeInternal(new Symbol(typeCount, TYPE_TAG, null, null, value, 0, hashCode));
    }
Adds a type in the type table of this symbol table. Does nothing if the type table already
contains a similar type.

@param value an internal class name.
@return the index of a new or already existing type Symbol with the given value.
core/src/main/java/com/alibaba/fastjson2/internal/asm/SymbolTable.java