private void put(final Item i) {
        if (index > threshold) {
            int ll = items.length;
            int nl = ll * 2 + 1;
            Item[] newItems = new Item[nl];
            for (int l = ll - 1; l >= 0; --l) {
                Item j = items[l];
                while (j != null) {
                    int index = j.hashCode % newItems.length;
                    Item k = j.next;
                    j.next = newItems[index];
                    newItems[index] = j;
                    j = k;
                }
            }
            items = newItems;
            threshold = (int) (nl * 0.75);
        }
        int index = i.hashCode % items.length;
        i.next = items[index];
        items[index] = i;
    }
Adds a method reference to the constant pool of the class being build. Does nothing if the constant pool already
contains a similar item.

@param owner the internal name of the method's owner class.
@param name the method's name.
@param desc the method's descriptor.
@param itf <tt>true</tt> if <tt>owner</tt> is an interface.
@return a new or already existing method reference item.
src/main/java/com/alibaba/fastjson/asm/ClassWriter.java