DATE y TIMESTAMP tienen el mismo tamaño (7 bytes). Esos bytes se utilizan para almacenar siglo, década, año, mes, día, hora, minuto y segundos. Pero TIMESTAMP permite almacenar información adicional, como segundos fraccionarios (11 bytes) y segundos fraccionarios con zona horaria (13 bytes).
TIMESTAMP se agregó como compatible con ANSI para Oracle. Antes de eso, solo tenía FECHA.
En casos generales, debe usar FECHA. Pero si la precisión en el tiempo es un requisito, utilice TIMESTAMP.
Y sobre Java, la clase oracle.sql.DATE del controlador Oracle JDBC proporciona conversiones entre el tipo de datos Oracle Date/Timestamp y las clases Java java.sql.Date, java.sql.Time y java.sql.Timestamp.