Simple Language : Java is greatly simplified, improved and many technology experts recommends Java as C++ because its syntax is identical to that of C++ except java eliminated complex features of C++. Java came up with more functionality and fewer negative aspects. Java has English native syntax instead of having complex characters. It helps the learner to learn and understand java syntax quickly and write program easily after completing the initial configuration step that’s bit tricky for some learners.
Object Oriented : One of the core issue in software development is how to maintain and reuse the code. Object oriented programming paradigm provide great flexibility, modularity and re-usability through inheritance, polymorphism and abstraction. Java is purely object oriented programming language from very first day of launch. Many other languages they began strictly as procedural languages and later moved to object oriented approach which is very popular approach replacing traditional programming techniques.
Distributed : Java involves several computers working altogether and make distributed computing easy. Java technologies such as RMI, Web services, and socket programming are capable to integrated several computers to communicate with each other.
Compiling and running a Java program
Interpreted : Java use interpreter to run java code. A java code written in a plain text file with an .java extension. Source is compiled into .class which contains java bytecode understandable by the JVM (Java Virtual Machine).
Robust : Java specially designed to program robust software applications. Java equipped with very reliable features such as garbage collection, semantic checking while writing program and run time error handling.
Secure : Java is very secure. It’s memory allocation model act as a defense against malicious code. Access restriction and verification of byte codes improves the security capabilities.
Architecture Neutral : Java compiles the source code into bytecode which is easily interpret on any computer hardware.
Running same code over different plateforms
Portable : Once java bytecode generated, it can run over any environment without recompiling.
Multi Threaded : Multithread programming smoothly integrated with java which allows multiple concurrent threads of execution to be active at once. Java contains sophisticated synchronization primitives (monitors and condition variables), that are integrated into the language to make them easy to use and robust. The java.lang package provides a Thread class that supports methods to start, run, and stop a thread, and check on its status.
Dynamic : Java was designed to adapt to an evolving environment. New code can be loaded on the fly without recompilation. There is no need for developers to create, and for users to install, major new software versions. New features can be incorporated transparently as needed.