Возможный дубликат:
Странное поведение Java с приведениями к примитивным типам
Почему этот код в Java,
int i = (byte) + (char) - (int) + (long) - 1;
System.out.println(i);
печатает 1? Почему он даже компилируется?
Источник: Java-разработчики кода