This is more advanced than the standard firmware, which uses a bytecode interpreter anyway. It gives more control, and the ability to use Java code for those who are comfortable with this. C/C++ people should consider BrickOS.
It actually replaces the whole firmware of the system with a small (under 32k) JVM. LeJOS also has the virtue of being an Open Source system, which means that anybody can use it freely, as well as viewing the code that it is built with, and extend it.
The LeJOS developers are rumoured to be porting their code to the NXT.
Java firstly allows you to use the full range of IDEs you would for any Java code, as well as the help they give. It has a fairly comprehensive API which you can find detailed on their site with full JavaDOC documentation.
Time to build your own robot! Using a Raspberry Pi with parts and some time, you can use my book to learn how to make and program a robot with automatic behaviours.