Sunday 5 November 2017

Java : History of Java and Features of Java

History of Java
The history of Java starts from Green team. Java team members also known as Green Team, initiated a task to develop a language for digital devices such as set-top boxes, televisions etc.
James Gosling, Mike Sheridan and Patrick Naughton initiated the Java language project in June 1991. The small team of Sun engineers called Green Team.
Firstly it was called Greentalk by James Gosling and file extension was .gt.
After that, it was called Oak. Oak is symbol of strength and chosen as national tree of many countries like U.S.A., France, Germany, Romania etc.
In 1995, Oak was renamed as Java because it was already a trademark by Oak Technologies.
Java was originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems’ Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.

Features of Java
Simple :
Java language is simple because its syntax is based on C++. If you already understand the basic concepts of object-oriented programming, learning Java will be even easier. If you are experienced C++ programmer, then moving to Java will require very little effort. Because Java inherits the C/C++ syntax and many of the object-oriented features of C++.

Object-oriented :
Object-oriented means we organize our software as a combination of different types of objects that incorporates both data and behavior. All program code and data reside within object and classes. The object model in Java is simple and easy extend.

Secure :
Java does not allow one to directly access and manipulate the computer memory as the case in C or C++ with the use of pointers. The use of pointers can provide speed but some time prove dangerous of direct memory manipulation of memory addresses.
Java programs run inside virtual machine sandbox.
A Java sandbox is an area inside the memory. Outside which a Java program can’t make calls to Java resources such as APIs. Java sandbox consists of three components.
Classloader : It adds security by separating the package for the classes of the local file system from those that are imported from network sources.
Bytecode Verifier : It checks the code fragments for illegal code that can violate access right to objects.
Security Manager : It determines what resources a class can access such as reading and writing to the local disk.

Portable :
Java programs can be easily moved from one computer to another. Java compiler generates byte code instruction, we may carry the java byte code to any platform.

Robust :
Robust means strong. Java uses a strong management. Java provides exception handling to manage errors. To gain reliability, java has strict compile time and run time checking for codes. To better understand how java is robust, consider two main reasons for program failure: memory management mistakes and mishandled exceptional conditions.

Multithreaded :
A thread is like a separate program. We can write Java programs that deal with many tasks at once by defining multiple threads. The main advantage of multi-threading is that it doesn’t occupy memory for each thread. It shares common memory area.

Architecture-neutral :
There is no implementation dependant features e.g., size of primitive data types is fixed.
In C language, int data type occupies 2 bytes of memory for 32-bit architecture and 4 bytes of memory for 644-bit architecture. But in Java, it occupies 4 bytes of memory for both 32 and 64 bit architectures.

Interpreted:
Usually a computer language is either compiled or interpreted. Java combines these approaches thus making Java a two-stage system. Java compiler translates source code into byte code instruction. 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 we can say that java is both a compiled and an interpreted language.

High performance:
Java is faster than traditional interpretation since byte code close to native code.

Distributed:

We can create distributed applications in java. 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. 

No comments:

Post a Comment