History of Java
Java is a high level object oriented programming
language.
The principles for creating Java programming
were "Simple, Robust, Portable, Platform-
independent, Secured, High Performance,
Multithreaded, Architecture Neutral, Object-
Oriented, Interpreted, and Dynamic". Java was
developed by James Gosling, who is known as the
father of Java, in 1995. James Gosling and his
team members started the project in the early
'90s.
Currently, Java is used in internet programming,
mobile devices, games, e-business solutions, etc.
Following are given significant points that
describe the history of Java.
1) James Gosling, Mike Sheridan, and Patrick
Naughton initiated the Java language project in
June 1991. The small team of sun engineers
called Green Team.
2) Initially it was designed for small, embedded
systems in electronic appliances like set-top
boxes.
3) Firstly, it was called "Greentalk" by James
Gosling, and the file extension was .gt.
4) After that, it was called Oak and was
developed as a part of the Green project.
Why Java was named as "Oak"?
5) Why Oak? Oak is a symbol of strength and
chosen as a national tree of many countries like
the U.S.A., France, Germany, Romania, etc.
6) In 1995, Oak was renamed as "Java" because
it was already a trademark by Oak Technologies.
Features of Java
The primary objective of Java
programming language creation was to make it
portable, simple and secure programming
language. Apart from this, there are also some
excellent features which play an important role in
the popularity of this language. The features of
Java are also known as Java buzzwords.
A list of the most important features of the Java
language is given below.
1.Simple
2.Object-Oriented
3.Portable
4.Platform independent
5.Secured
6.Robust
7.Architecture neutral
8.Interpreted
9.High Performance
10. Multithreaded
11. Distributed
12. Dynamic
Simple
Java is very easy to learn, and its syntax is
simple, clean and easy to understand. According
to Sun Microsystem, Java language is a simple
programming language because:
o Java syntax is based on C++ (so easier for
programmers to learn it after C++).
o Java has removed many complicated and
rarely-used features, for example, explicit
pointers, operator overloading, etc.
o There is no need to remove unreferenced
objects because there is an Automatic
Garbage Collection in Java.
Object-oriented
Java is an object-oriented programming
language. Everything in Java is an object. Object-
oriented means we organize our software as a
combination of different types of objects that
incorporate both data and behavior.
Object-oriented programming (OOPs) is a
methodology that simplifies software
development and maintenance by providing
some rules.
Basic concepts of OOPs are:
1.Object
2.Class
3.Inheritance
4.Polymorphism
5.Abstraction
6.Encapsulation
Platform Independent
Java is platform independent because it is
different from other languages like C, C++, etc.
which are compiled into platform specific
machines while Java is a write once, run
anywhere language. A platform is the hardware
or software environment in which a program
runs.
There are two types of platforms software-based
and hardware-based. Java provides a software-
based platform.
The Java platform differs from most other
platforms in the sense that it is a software-based
platform that runs on top of other hardware-
based platforms. It has two components:
1.Runtime Environment
2.API(Application Programming Interface)
Java code can be executed on multiple platforms,
for example, 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).
Secured
Java is best known for its security. With Java, we
can develop virus-free systems. Java is secured
because:
o No explicit pointer
o Java Programs run inside a virtual
machine sandbox
Robust
The English mining of Robust is strong. Java is
robust because:
o It uses strong memory management.
o There is a lack of pointers that avoids
security problems.
o Java provides automatic garbage collection
which runs on the Java Virtual Machine to get
rid of objects which are not being used by a
Java application anymore.
o There are exception handling and the type
checking mechanism in Java. All these points
make Java robust.
Architecture-neutral
Java is architecture neutral because there are no
implementation dependent features, for
example, the size of primitive types is fixed.
In C programming, int data type occupies 2 bytes
of memory for 32-bit architecture and 4 bytes of
memory for 64-bit architecture. However, it
occupies 4 bytes of memory for both 32 and 64-
bit architectures in Java.
Portable
Java is portable because it facilitates you to carry
the Java bytecode to any platform. It doesn't
require any implementation.
High-performance
Java is faster than other traditional interpreted
programming languages because Java bytecode
is "close" to native code. It is still a little bit
slower than a compiled language (e.g., C++).
Java is an interpreted language that is why it is
slower than compiled languages, e.g., C, C++,
etc.
Distributed
Java is distributed because it facilitates users to
create distributed applications in Java. RMI and
EJB are used for creating distributed applications.
This feature of Java makes us able to access files
by calling the methods from any machine on the
internet.
Multi-threaded
A thread is like a separate program, executing
concurrently. 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 a common memory area. Threads are
important for multi-media, Web applications, etc.
Dynamic
Java is a dynamic language. It supports the
dynamic loading of classes. It means classes are
loaded on demand. It also supports functions
from its native languages, i.e., C and C++.
Java supports dynamic compilation and
automatic memory management (garbage
collection).