1. Simple:
  • Java is easy for the professional programmer to learn and use effectively.
  • So if you have some programming experience, you can easily learn java.
  • If you already understand the basic concepts of object oriented programming, learning java will be even easier.
  • If you are an experienced C++ programmer, it will take a few days to get good command over java.
  • Because it’s syntax is derived from the C language and Object-oriented features from the C++
  1. Security:
  • Java provides high security against viral infection.
  • Java system allows program to access only addresses allocated to it so that no malware program can modify or damage your local file system.
  1. Portable:
  • The most significant advantage of java is portability.
  • Java programs can be easily moved from one system to another.
  • It works on the concept “write once and run anytime every where “
  • Java ensures portability in two ways:
  • Java compiler generates byte code instruction that can be implemented on any machine.
  • The size of the primitive data types is machine-independent.
  1. Object-Oriented:
  • Java is a true object oriented language. All program code and data are combined within object and classes.
  • The object model in java is simple and easy to extend.
  1. Robust:
  • The multi-platform environment of the Web places extraordinary demands on a program, because the program must execute reliably in a variety of systems. Thus, the ability to create robust programs was given a high priority in the design of java.
  • Java has strict compile time and run time checking for codes to ensure reliability.
  • Java is robust because of two main reasons: memory management and exceptional conditions.
  • In C/C++, the programmer must manually allocate and free all dynamic memory. This sometimes leads to problems, because programmers will either forget to free memory or try to free some memory that another part of their code is still using.
  • Java solves these problems by managing memory allocation and de-allocation using garbage collector. (In fact, de-allocation is completely automatic, because java provides garbage collection for unused objects.)
  • Exceptional are normal to arise in the programs such as division by zero or “file not found”.
  • Java provides object oriented exception handling to avoid such exceptional conditions.
  1. Multi threaded:
  • Java was designed to meet the real-world requirement of creating interactive, networked programs.
  • To accomplish this, java supports multi threaded programming, which allows you to write programs that do many things simultaneously.
  • The java run-time system offers multi process synchronization that enables you to construct smoothly running interactive systems.
  • Java’s easy to use approach to multi-threading allows you to think about the specific behavior of your program, not the multitasking subsystem.
  1. Architecture-Neutral:
  • A central issue of java programmers was portability of the code.
  • There was no guarantee exists that if you write a program today, it will run tomorrow- even on the same machine.
  • Operating system upgrades, and changes in core system resources can make a program not to work properly.
  • The goal of java designer was “write once; run anywhere, any time, forever.”
  1. Interpreted:
  • Usually a computer language is either compiled or interpreted. Java combines these approaches.
  • Java compiler translates source code into byte code instructions. Byte codes are not machine instructions and so java interpreter generates machine code that can be directly executed by the machine that is running the java program.
  • So java is both a compiled and an interpreted language.
  1. High Performance:
  • Java performance is impressive for an interpreted language, mainly due to the use of intermediate byte code.
  1. Distributed:
  • Java is designed for the distributed environment of the Internet, because it handles TCP/IP protocols.
  • Java also supports Remote Method Invocation (RMI). This feature enables a program to invoke methods across a network.
  1. Dynamic:
  • Java is capable of dynamically linking in new class libraries, methods and object.
  • Java can also determine the type of class through a query, making it possible to either dynamically link or abort the program.