Java applications are typically compiled to bytecode (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture. Java is general-purpose, concurrent, class-based, and object-oriented, and is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere".

Object Orientated

Writing Java is an Object-oriented programming. The principal advantages of object-oriented programming techniques over procedural programming techniques is that they enable programmers to create modules that do not need to be changed when a new type of object is added. A programmer can simply create a new object that inherits many of its features from existing objects. This makes object-oriented programs easier to modify.


Java is multimedia rich language and contains libraries that allow the programmer to use gif's, wavs and other popular media files.


The developers gave some consideration to networking and Java was composed with security, multi-threading and many more network issues in mind, not to mention platform independence.

Easier / Safer

In one sense this is both an advantage and a disadvantage, Java doesn't allow many of the difficulties of C++, and consequently cuts down on the problems of C++ in terms of memory leaks, however this restriction on pointers, etc. also makes java just that little bit more inflexible than C++.