¿Por qué mi matemática está mal en Java?

En el siguiente código, no veo ninguna manera en la que T1 y T3 sean diferentes. Ciertamente mi calculadora dice que no lo son.

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);
    }
}

Entonces, ¿por qué obtengo salida de:

-1702967296
86400000
2592000000

No es solo System.out.println en este programa de muestra tampoco. Cuando tengo T1 en eclipse y el mouse sobre la variable obtengo un brillo que muestra los mismos valores.

versión java "1.6.0_33" OSX

Respuestas a la pregunta(3)

Su respuesta a la pregunta