There are many ways to perform collision detection Cello Coder. The simplest may not be the best solution for your game and may cause bugs to show up...
I have never used LWJGL so there might be a library someone has made for collisions, but it really comes down to two ways.
easy way - buggy - perform a check to see if the mesh of object one is near object two
pseudocode -> obj1.pos +/- obj1.size intersects a bound that obj2.pos+/- obj2.size also intersects.
harder way - less buggy - calculate the velocity of the moving obstacles at each time there is an interaction and check to see if the two velocities(of the objects) intersect.
If they do intersect calculate the time of intersection and set a condition to make those two objects interact accordingly.
If you are worried that 3D is a little bit different than 2D, just think of it as adding the third dimension and performing the math the same way, but adding in a third variable into the equation.
Does that make sense?