private final Node<V>[] initTable() {
      Node<V>[] tab; int sc;
      while ((tab = table) == null || tab.length == 0) {
        if ((sc = sizeCtl) < 0) {
          Thread.yield(); // lost initialization race; just spin
        }
        else if (Unsafe.compareAndSwapInt(this, SIZECTL, sc, -1)) {
          try {
            if ((tab = table) == null || tab.length == 0) {
              int n = (sc > 0) ? sc : DEFAULT_CAPACITY;
              @SuppressWarnings("unchecked")
              Node<V>[] nt = (Node<V>[])new Node<?>[n];
              table = tab = nt;
              sc = n - (n >>> 2);
            }
          }
          finally {
            sizeCtl = sc;
          }
          break;
        }
      }
      return tab;
  }
private final Node<V>[] initTable()