Warum wird assert in der Integer.valueOf-Methode der Integer-Klasse verwendet?

Ich grub in, wie dieInteger Klasse verwendet tatsächlich zwischengespeicherte Objekte, und ich fand den folgenden Code in derInteger.valueOf Methode

public static Integer valueOf(int i) {
    assert IntegerCache.high >= 127;
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}

Meine Frage ist

wozu benutzt manassert IntegerCache.high >= 127; Ich las dasassert bietet eine effektive Möglichkeit, Programmierfehler zu erkennen und zu korrigieren.. Aber das ist Laufzeitcode, warum sollte also jemand assert verwenden?nd wann wird es werfenAssertionError In diesem Szenario

Antworten auf die Frage(8)

Ihre Antwort auf die Frage