Warum führen diese beiden Multiplikationen zu unterschiedlichen Ergebnissen?

Warum muss ich ein "L" hinzufügen, um den richtigen langen Wert zu erhalten? Und was ist der andere Wert?

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage