Towards that end, a lot of emphasis has been placed on security. Sometimes Java is secure to the point of being annoying because you can't do some of the things you want to. But as they say, better safe than sorry. Rather, they are designed to be both easy to interpret on any machine and easily translated into native machine code on the fly. The bytecode can be translated on the fly into machine code for the particular CPU the application is running on.
Libraries can freely add new methods and instance variables without any effect on their clients.
As you can see, Java is a fantastic language. And having been coding in Java for several years now, I can tell you with confidence that writing Java is also fun, and actually quite easy. Of course, there is one catch. Java is only easy when you grasp the quirky way in which Java looks at the world. And to think in Java, you must understand object-oriented programming.