Почему эти две операции умножения дают разные результаты?

Почему мне нужно добавить "L"? письмо, чтобы получить правильное длинное значение? И какова другая ценность?

long oneYearWithL = 1000*60*60*24*365L;
long oneYearWithoutL = 1000*60*60*24*365;
System.out.println(oneYearWithL);//gives correct calculation result : 31536000000
System.out.println(oneYearWithoutL)//gives incorrect calculation result: 1471228928

Ответы на вопрос(2)

Ваш ответ на вопрос