Java is a bit more of a modern language, for example it has had garbage collection from the get go, whereas this has just been added to Objective C.
If you want to do cross platform stuff then yes, Java is a good way of going about it. The main two bad things are:
[1] Performance: All the code is run on virtual machine which runs on top of the processor. The extent to which this is an issue varies on a case by case basis. This is less of an issue than it was and I certainly don't subscribe to the java = slow school of thought.
[2] Exploiting OS specific features. Fairly obvious: You can't use Core Animation in a Java app.
If you want to write OS X apps, then Cocoa is the way to go. You have the choice of three languages, which have already been outlined above.