W klasie Java String The wykończenia sposób ten zawiera:Unikanie getfield opcodu
int off = offset; /* avoid getfield opcode */
char[] val = value; /* avoid getfield opcode */
Jestem nieco zaskoczony komentarzu "uniknąć getfield opcodu" ...
Co czy to znaczy? (Biorę to w ten unika się stosowania getfield w kodu bajtowego, ale dlaczego jest to Dobra Rzecz [TM]?)
Czy to aby zapobiec tworzeniu obiektu w przypadku wykończenia nic nie robi (a więc ten jest zwracany) lub?
Komentarz nie dotyczy "len", ponieważ len jest aktywnie modyfikowany w metodzie, więc i tak musi to być zmienna lokalna. "off" i "val" z drugiej strony nie są modyfikowane, ale istnieją wyłącznie w celu optymalizacji. – Lars
@Lars: Dobrze zauważony; Nie widziałem zmiany w len. –
@JonSkeet Jeśli osobiście pisałeś tę bibliotekę, czy spodziewałbyś się tego zrobić? Lub po prostu polegał na JIT do mikro-optymalizacji? – corsiKa