I agree with Jack: if nothing else, if the garbage collection can happen at any time, that can be a major problem in any system that works in real time: If your sensors notice at the last moment there is an obstacle in the path your arm is swinging, then a garbage collection at the wrong time could be fatal.
Note that there are very good free physics engines available. E. g. check out
Open Dynamics Engine (ODE)[
^] by Russell Smith, or maybe
Newton Game Dynamics[
^], by Julio Jerez and Alain Suero. These Engines are written in C++.
P.S.: While I have only little experience with Java myself, most SW development I know of in Java deals with Web programming, databases, distributed systems, or any combinations of these. Robotics requires neither. I'll leave the conclusions to you ;)