Hi Melissa,
the REST API is a wrapper around the Java API. Due to that design, the REST API will always slightly lag behind the Java API during development. However, we try to expose every history query that exists in the Java API also in the REST API. From the point of feature coverage, I think both are equally rich.
The Java API has one feature that we do not expose in the REST API which is native queries [1], that means queries where the application provides the SQL statement and parameters. That feature can be useful if you need a very specific query for which no API exists and that is unlikely to become API in the future.
So my recommendation would be to use the API that is more convenient for your use case. There is no general preference for one over the other.
Cheers,
Thorben
[1]
http://docs.camunda.org/latest/guides/user-guide/#process-engine-process-engine-api-native-queries