Я пытаюсь написать код, чтобы определить, когда количество миллисекунд с начала 1970 года будет превышать пропускную способность. Появится следующий код:
public class Y2K {
public static void main(String[] args) {
int year = 1970;
long cumSeconds = 0;
while (cumSeconds < Long.MAX_VALUE) {
// 31557600000 is the number of milliseconds in a year
cumSeconds += 3.15576E+10;
year++;
}
System.out.println(year);
}
}
Этот код выполняется в течение нескольких секунд и печатает 292272992. Если вместо использования научной нотации я пишу cumSeconds как 31558000000L
, программа, кажется, занимает "навсегда" для запуска (я просто ударил паузу через 10 минут или около того). Также обратите внимание, что запись cumSeconds в научной нотации не требует указания числа long
с L или l в конце.