- 1
- 2
- 3
- 4
- 5
- 6
public static Integer valueOf(int i) {
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+69
public static Integer valueOf(int i) {
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}
Код java.lang.Integer
из этого как минимум следует что: Integer.valueOf(-130) != Integer.valueOf(-130).
омич чтоле?
джважды сработает return new Integer(-130);
ты еще строки через == посравнивай
правда, для 130 не сработает
а вот
Iteger.valueOf(1) == Integer.valueOf(1)
Ваш КО
но это херня. в java.awt вещи поинтереснее встречаются
это написано не для быдла не знающего жабы и сравнивающего Integerы через "==".
подчеркиваю
as this method is likely to yield significantly better space and time performance by caching frequently requested values.
КОММЕНТЫ ДЕВОВ НЕ ЧИТАЙ
@
НА ГОВНОКОД ЗАЛИВАЙ
оптимизация - нормал.
реализация - попахивает.
хотя конечно когда я впервые увидел new Integer[-(-128) + 127 + 1];
тоже просмеялся.
>но почему именно 128?
0_0
> тоже просмеялся.
Артефакты. В Sun JDK в этом месте переменные. В OpenJDK решили, что достаточно констант по умолчанию (и верно решили).
старых?
уебдванольненько так получилось http://i.imgur.com/79xHl.png
Я сам попадал под эти минусы не раз.