<p>I always hear that programmers try to pick the right tool for the job.  I've never programmed in Java, so I was wondering What are its benefits?  Why is it so popular?  What should I use it for?</p>

<p>I just program recreationally.  Is there anything about it that makes it particularly fun??</p>

Cross platform is in my opinion the most relevant benefit.
The main goal of Java was to create a programming language that could run anywhere. The target was GUI apps. This however never happen because the environment was too slow at the beginning ( now it has been improved )  but it prove true in the server side where the cost of development reduced a lot because the product development can be done in PCs and the deployment in very expensive hardware.
It brought easy of development also, because it was designed to have C++ like syntax but running on a virtual platform to avoid platform specific code.  At first the penalty was the execution speed, because it was interpreted, but release after release the interpreters became more and more faster that even MS model its next generation of development after java and call it .net
Additionally
You can have a read of the Java design goals
here