Features of Java
There are following features of java. They are also called java buzzwords.
- Plateform Independent
- Object Oriented .
- High Performance.
- JAVA was designated to be very simple and easy to learn.
- The syntax of JAVA has been kept nearer to C++.
- In JAVA the infrequently used complex features of C++ have not been included.
- A programmer aware of the various object-oriented concepts can easily develop applications in JAVA.
- Another aspect of being simple is being small. One of the goals of JAVA is to enable the construction of software that can run stand-alone in small machines. The size of the basic interpreter and class support is about 40K bytes; adding the basic standard libraries and thread support (essentially a self-contained microkernel) adds an additional 175K.
Java code can be run on multiple platforms e.g.Windows, Linux, Sun Solaris, Mac/OS etc.
Java code is compiled by the compiler and converted into bytecode.This bytecode is a platform independent code because it can be run on multiple platforms i.e. Write Once and Run Anywhere(WORA).
- Java is intended to be used in networked/distributed environments.
- Toward that end, a lot of emphasis has been placed on security.
- Java enables the construction of virus-free, tamper-free systems.
- Unlike C and C++, there are no "implementation-dependent" aspects of the specification. The sizes of the primitive data types are specified, as is the behavior of arithmetic on them.
- For example, an int in Java is always a 32-bit integer. In C/C++, int can mean a 16-bit integer, a 32-bit integer, or any other size that the compiler vendor likes.
- The only restriction is that the int type must have at least as many bytes as a short int and cannot have more bytes than a long int.
- Having a fixed size for number types eliminates a major porting headache. Binary data is stored and transmitted in a fixed format, eliminating confusion about byte ordering. Strings are saved in a standard Unicode format.
- The libraries that are a part of the system define portable interfaces. For example, there is an abstract Window class and implementations of it for UNIX, Windows, and the Macintosh.
- Simply stated, object-oriented design is a technique for programming that focuses on the data (= objects) and on the interfaces to that object.
- To make an analogy with carpentry, an "object-oriented" carpenter would be mostly concerned with the chair he was building, and secondarily with the tools used to make it; a "non-object-oriented" carpenter would think primarily of his tools.
- The ability to create robust programs was given a high priority in the design of Java.
- It checks your code at compile time. However, it also checks your code at run time.
- Program failure: memory management mistakes and mishandled exceptional conditions (that is, run-time errors). Memory management can be a difficult, tedious task in traditional programming environments. For example, in C/C++.
- Java virtually eliminates these problems by managing memory allocation and deallocation for you. (In fact, deallocation is completely automatic, because Java provides garbage collection for unused objects.)
- Java supports multithreaded programming, which allows you to write programs that do many things simultaneously.
- The Java run-time system comes with an elegant yet sophisticated solution for multiprocess synchronization that enables you to construct smoothly running interactive systems.
- Java’s easy-to-use approach to multithreading allows you to think about the specific behavior of your program, not the multitasking subsystem.
Their goal was “write once; run anywhere, any time, forever.” To a great extent, this goal was accomplished.
- The Java interpreter can execute Java byte codes directly on any machine to which the interpreter has been ported.
- Since linking is a more incremental and lightweight process, the development process can be much more rapid and exploratory
- While the performance of interpreted byte codes is usually more than adequate, there are situations where higher performance is required.
- The byte codes can be translated on the fly (at run time) into machine code for the particular CPU the application is running on.
- Java has an extensive library of routines for coping with TCP/IP protocols like HTTP and FTP.
- Java applications can open and access objects across the Net via URLs with the same ease as when accessing a local file system.
In a number of ways, Java is a more dynamic language than C or C++.
- It was designed to adapt to an evolving environment. Libraries can freely add new methods and instance variables without any effect on their clients. In Java, finding out run time type information is straightforward.