What Java intends to provide?
Java should be simple to learn and use by the Professional Programmers.
- Object Oriented Features
The Object Model in Java is simple and easy to extend.
Programs written in Java should be able to run reliably in any Environment.
To support Concurrency and Parallelism
- Architecture Neutral
Thanks to Java Virtual Machine
- Interpreted and High Performance
Java supports Remote Method Invocation.
Apart from these Java is a strictly typed language so it checks your program at both compile and run time.
It also frees you from Memory Management activities which can cause major errors at run time, if not managed properly.