Por que minha matemática está errada em Java?
No código a seguir, não vejo nenhuma maneira em que T1 e T3 são diferentes. Certamente minha calculadora diz que eles não são.
public class longTest {
public static final long T1 = 24 * 60 * 60 * 1000 * 30;
public static final long T2 = 24 * 60 * 60 * 1000;
public static final long T3 = T2 * 30;
public static void main(String[] args) {
System.out.println(T1);
System.out.println(T2);
System.out.println(T3);
}
}
Então, por que recebo a saída de:
-1702967296
86400000
2592000000
Não é apenas System.out.println neste programa de exemplo também. Quando eu tenho T1 no eclipse e mouse sobre a variável eu recebo um gloss mostrando os mesmos valores.
versão java "1.6.0_33" OSX