Я получил вопрос Java во время моего интервью, как показано нижеОперация сложения в классе Java Integer
public static boolean isSame(Integer a, Integer b){
return a==b;
}
public static void main(String[] arg){
int i=0;
for(int j=0;i<500;++i,++j){
if(isSame(i,j)){
continue;
}
else break;
}
}
Вопрос является «я =?» в конце концов.
Я думал, что буду 500. Но когда я попробовал это в Eclipse i = 128!
Так что мне было интересно, что здесь происходит.
Благодаря
я не знаю значения могут быть кэшируются !! Спасибо, богемский !!! –
[JLS §5.1.7] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.7) гарантирует, что -128..127 кэшируются но также утверждает, что «Меньшие реализации с ограничением памяти могут, например, кэшировать все значения char и short, а также значения int и long в диапазоне от -32K до + 32K». Поэтому лучше не полагаться на ценности снаружи. – zapl
Итак, правильный ответ на этот вопрос интервью с ОП - «зависит от реализации» (возможно с дополнительной записью «но не менее 128» - 128, потому что это больше, чем максимальное кэшированное значение) –