Java is a class based Object Oriented Programming (OOPs) language, which works on write once, run anywhere (WORA) and is used by programmers to create applications, games, operating system for computer and mobile. Most of the web-browsers today come with Java plug-in supports.
Following are the basic features of Java:
- Java is based on the concept of Write-Once-Run-Anywhere/ Write-Once-Run-Everywhere (WORA/WORE).
- The programs written on one platform can run on any platform
- In Java , programs are easy to write and easy to learn
- Java provides the bug free system
- Java has the automatic memory allocation and de-allocation system.
- Java is derived from C++ making it easy to learn for programmers
Java is an Object Oriented Programming (OOPs) language and provides simple software development and maintenance. The basic unit of Java is object.
Java supports following four characteristics of OOPs:
Process of creating the new classes and using the behavior of the existing classes and adding the additional features as required.
It is the mechanism of combining the information and providing the abstraction.
Polymorphism is the way of providing the different functionality by the functions having the same name.
Dynamic binding provides the maximum functionality to a program about the specific type at runtime.
Though C, C++ fulfills the above four characteristics of OOPs but they are also structured while Java is a complete Object Oriented Programming (OOPs) language.
Following features make Java language robust:
- Java has the strong memory allocation management
- Java has automatic garbage collection mechanism that eliminates memory leaks
- Java does not have pointers that eliminates the possibility of overwriting memory
- It has exception handling and type checking mechanisms, which are not there in other programming languages.
- Compiler checks the program every time whether there is any error or not
- Interpreter checks any run time error and hence secure the system from crashing.
- HTTP and FTP are developed in Java.
- Java supports information across the network.
- Java class libraries have built in TCP/IP support.
- Java allows Internet programmers access to files from any remote machine on the Internet rather than writing codes on their local system.
- Write-Once-Run-Anywhere/ Write-Once-Run-Everywhere (WORA/WORE) feature makes Java language portable if the system have interpreter for the JVM.
- Java bytecode can be carried to any platform.
- Java programs are portable to Windows, Unix and Mac
- Java also has the standard data size.
While executing the Java program the user can get run-time type information dynamically from a local drive or just by connecting with the Internet.
- Java does not use memory pointers.
- Java programs run under sand box.
- Security manager determines the accessibility options of a class.
- Java uses the public key encryption system to allow the java applications to transmit over the Internet in the secure encrypted form.
- Java used the bytecode Verifier to check the classes after loading.
- Almost all web browsers allow safe download of Java Applet
- Java uses lightweight process called threads
- The advance version of JVM uses the "adaptive" and "just in time" compilation technique to improve performance.
Java supports Multithreading, which means a single program having different threads can be executed simultaneously. Multithreading works the similar way as multiple processes run on one computer.
In multithreaded programs a thread does not disturbs the execution of other thread. Threads are obtained from the pool of Ready-to-Run threads.
- Java being an interpreted language runs program directly from the source code.
- The source code to be written and distributed is platform independent.
- Java as an interpreted language helps in tracing any error occurring in the program (error debugging quality).
- Java is an architectural neutral language, which means that applications can migrate easily to different computer systems, hardware architecture and Operating system.
- Java compiler by generating byte code instructions helps in easy migration to any machine.
- The compiler generates an architecture-neutral object file format to enable a Java application to execute anywhere on the network.
- Java supports applications on network.