Honestly, I know java is hated. I don't care much for the execution of it myself, but really I think it is over hated. People hate it cause other people hate it, like twilight. People hate it cause other people hate it.
Like with twilight, the story is good, but the presentation is horrid. Java is the bastard child, it is used so much and never gets recognition. Android uses it, it is preferred over native stuff for app dev from the core devs themselves. It is taught in college for OOP for paradigm alone. It is a very useful language and is used by a lot of people, and makes industry apps.
Now, I don't really code Java unless I need it, but you can't knock something without using it. People who knock it are either people who use it everyday or people who never use it.