Por que essas duas operações de multiplicação dão resultados diferentes?

Por que preciso adicionar uma letra "L" para obter o valor longo correto? E qual é o outro valor?

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

questionAnswers(2)

yourAnswerToTheQuestion