- Not purely Object Oriented: It doesn't support multiple inheritence, it supports primitive data types and static members.
- Doesn’t support multiple inheritance: Reason is diamond problem i.e., if both parent classes have same method & not overridden by child, then at runtime ambiguity occurs.
- Platform Independent: Compiled into platform independent bytecode.
- Robust: Provides compile-time and runtime checks in order to eliminate error prone situations.
- Multithreaded: Supports performing multiple tasks simultaneously.
- Interpreted: Java bytecode is translated on the fly to native machine instructions and is not stored anywhere.
- High Performance: Uses JIT compiler.
- Secure.
- Architectural neutral.
- Portable.
- Distributed.
- Dynamic.