Object Oriented - In java everything is an Object. Java can be easily expanded since it is based on the Object model.
Platform independent - C and C++ are platform dependency languages hence the application programs written in one Operating system cannot run in any other Operating system, but in platform independence language like Java application programs written in one Operating system can able to run on any Operating system.
Portable - being architectural neutral and having no implementation dependent aspects of the specification makes Java portable. Compiler and Java is written in ANSI C with a clean portability boundary which is a POSIX subset.
Robust - Java makes an effort to eliminate error prone situations by emphasizing mainly on compile time error checking and runtime checking.
Simple - Java is designed to be easy to learn. If you understand the basic concept of OOP java would be easy to master.
Secure - With Java's secure feature it enables to develop virus-free, tamper-free systems. Authentication techniques are based on public-key encryption.
Multi-threaded - With Java's multi-threaded feature it is possible to write programs that can do many tasks simultaneously. This design feature allows developers to construct smoothly running interactive applications.
Interpreted - Java byte code is translated on the fly to native machine instructions and is not stored anywhere. The development process is more rapid and analytical since the linking is an incremental and light weight process.
High Performance - With the use of Just-In-Time compilers Java enables high performance.