DATE e TIMESTAMP têm o mesmo tamanho (7 bytes). Esses bytes são usados para armazenar século, década, ano, mês, dia, hora, minuto e segundos. Mas TIMESTAMP permite armazenar informações adicionais, como segundos fracionários (11 bytes) e segundos fracionários com fuso horário (13 bytes).
TIMESTAMP foi adicionado como compatível com ANSI para Oracle. Antes disso, tinha apenas DATE.
Em casos gerais, você deve usar DATE. Mas se a precisão no tempo for um requisito, use TIMESTAMP.
E sobre Java, a classe oracle.sql.DATE do driver Oracle JDBC, fornece conversões entre o tipo de dados Oracle Date/Timestamp e as classes Java java.sql.Date, java.sql.Time e java.sql.Timestamp.