自分で勉強したいと思っているので今回は作っています。
条件をwhile (list[i] <= pivlot) { i++; }の「以下」や「以上」に変更したらスタックオバーフローになりました。
そのため、while (list[i] <= pivlot && i < list.length) { i++; }, while (list[j] >= pivlot && j > 0) { j--; }とカウンタの範囲を限定しても上記のエラーでます。