次のコードと出力があります。
public static void main(String[] args) {
long lon = 1000;
lon = lon * 3600;
lon = lon * 24;
lon = lon * 365;
System.out.println("lon: " + lon);
long lon2 = 1000 * 3600 * 24 * 365;
System.out.println("lon2: " + lon2);
}
lon: 31536000000
lon2: 1471228928
で何らかのオーバーフローが発生しているとlon2
思いますが、それを理解できないようです。結果は Long.MAX_VALUE をはるかに下回っています。何か案が?