Toggle Home compiler design algorithms data structure operating system software engineering C java OOP

The various features of JAVA include:

  • Simple – It is simple to learn and easy to implement; its syntax is mainly derived from C++.

  • Object-Oriented – JAVA supports OOP paradigm; this allows us to implement applications that can be managed as collection of Objects having Data and Behavior. It supports principles like Encapsulation, Inheritance, Polymorphism, Dynamic Binding and Abstraction.

  • Portable – JAVA follows WORA (Write Once Run Anywhere) concept; it means a compiled JAVA file can be executed directly on another compatible machine without compiling it again.

  • Platform Independent – JAVA is different from C / C++, as it is a platform independent language. Execution of JAVA code doesn’t depend on OS; it has its own platform for executing the code.

  • Secured – Byte Code, Exception Handling and no usage of Pointers make JAVA a highly secure language.

  • Robust – Built in support for Memory Management, automatic garbage collection, exception handling, etc makes JAVA a highly robust language.

  • Architecture Neutral – The underlying hardware architecture has no impact on JAVA. The range and size of data types in JAVA is fixed, irrespective of the 32 bit or 63 bit hardware architecture.

  • Interpreted – The JAVA program is compiled as well as interpreted. The compiled error free JAVA code is transformed into Byte Code. The interpreter of JAVA (JVM), also called Just In Time Interpreter will then execute the Byte Code to generate the output.

  • High Performance – The execution of JAVA program is comparatively faster than other interpreted languages; however it takes more time, compared to C / C++.

  • Multithreaded – Threads in JAVA are used to achieve Concurrency, i. e., performing multiple tasks simultaneously. Threads share a common Memory area; hence require low storage space. Threads are highly useful in multimedia and web applications.

  • Distributed – Developers can implement distributed applications in JAVA using the concepts of RMI and EJB.