I have a personal hatred of Java, possibly a war scar from my Software Design subject at college. Even though OOP is quite useful for a lot of tasks, Java seems to always prefer to force on you the worst possible way of doing it. Even python's OOP is far better.
But yeah, its a fine language, functionality-wise, and the bytecode idea allows for portability with reduced overhead.