As a whole it is more efficient, because it always picks a ratio that maximizes torque. When I talk to car enthusists, they always emphasize that it is less efficient, because for each specific ratio, there is more overhead (belts, etc.) than a gear.
The point I am trying to make, is that in the real world using Java is like using an automatic: it allows you to focus on the big picture while it optimizing the little bits for you the best it can.
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.66....