Всем привет!
Начну с задачки, которую можно найти буквально в первой главе книги Java™ Puzzlers: Traps, Pitfalls, and Corner Cases авторства Joshua Bloch и Neal Gafter:
public class LongTest {
public static void main(String ... args) {
final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;
final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
System.out.println(MICROS_PER_DAY / MILLIS_PER_DAY);
}
}
Каков будет результат? (Ответ внизу*)
Собственно, в этой теме я хотел бы спросить у специалистов о переполнении.
Скажем, если у нас есть int и на каком-то этапе случается переполнение. Почему бы не сделать, чтобы в этот момент выделить новую память, но уже типа long и переместить значение старой переменной туда.
Подозреваю, что сделано это из целей перформанса, но не уверен.
P. S. *лично я не ожидал, что ответом на задачку будет 5.