Symbol addConstantLongOrDouble(final long value) {
        int hashCode = 0x7FFFFFFF & (5 + (int) value + (int) (value >>> 32));
        Symbol entry = entries[hashCode % entries.length];
        while (entry != null) {
            if (entry.tag == 5 && entry.hashCode == hashCode && entry.data == value) {
                return entry;
            }
            entry = entry.next;
        }
        int index = constantPoolCount;
        constantPool.putByte(5).putLong(value);
        constantPoolCount += 2;
        return put(new Symbol(index, 5, null, null, null, value, hashCode));
    }
//     * Adds a CONSTANT_Methodref_info or CONSTANT_InterfaceMethodref_info to the constant pool of this
//     * symbol table. Does nothing if the constant pool already contains a similar item.
//     *
//     * @param owner       the internal name of a class.
//     * @param name        a method name.
//     * @param descriptor  a method descriptor.
//     * @param isInterface whether owner is an interface or not.
//     * @return a new or already existing Symbol with the given value.
//
core/src/main/java/com/alibaba/fastjson2/internal/asm/SymbolTable.java