0 ratings0% found this document useful (0 votes) 43 views30 pages1.java Introduction
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
The complete History of Java
Programming Language
Java is an Object-Oriented programming
language developed by James Gosling in
the early 1990s. The team initiated this
project to develop a language for digital
devices such as set-top boxes, television,
etc. Originally C++ was considered to be
used in the project but the idea was
rejected for several reasons(For instance
C++ required more memory). Gosling
endeavoured to alter and expand C++
however before long surrendered that for
making another stage called Green.
James Gosling and his team called their
project “Greentalk” and its file extension
was .gt and later became to known as
“OAK”.Java is a_ high-level programming
language developed by Sun
Microsystems. It was originally designed
for developing programs for set-top
boxes and handheld devices, but later
became a popular choice for creating
web applications.
The Java syntax is similar to C++, but is
strictly an object-oriented programming
language. For example, most Java
programs contain classes, which are
used to define objects, and methods,
which are assigned to individual classes.
Java is also known for being more strict
than C++, meaning variables and
functions must be explicitly defined.
This means Java source code may
produce errors or "exceptions" more
easily than other languages, but it also
limits other types of errors that may be
caused by undefined variables or
unassigned types.Why ‘Oak’?
The name Oak was used by Gosling after
an oak tree that remained outside his
office. Also, Oak is an image of solidarity
and picked as a national tree of
numerous nations like the U.S.A., France,
Germany, Romania, etc. But they had to
later rename it as “JAVA” as 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 most important features of Java
language is given below.Cl ytrat
ee]
TT)
Features 3)
ro) j Berle
Java
Lae dicoltul
Petia
. Simple
. Object-Oriented
. Portable
. Platform independent
. Secured
. Robust10.
11
12,
. Architecture neutral
. Interpreted
. High Performance
Multithreaded
. Distributed
DynamicJava is very easy to learn, and its syntax is
simple, clean and easy to understand.
According to Sun, 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.
© There is no need to remove
unreferenced objects because there is
an Automatic Garbage Collection in
Java.
Object-orientedJava 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 incorporates 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. EncapsulationPlatform Independent
Class
File
ZL
Mac/OS_ windows Linux
JVM JVM JVM
} | 4
mA
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 the top of other
hardware-based platforms. It has two
components:
1. Runtime Environment
2. API(Application Programming Interface)
Java code can be run 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
(ea ery
Womans J Vy tad Oy data)
eA
Classloader: Classloader in Java is a
fe}
part of the Java Runtime
Environment(JRE) which is used to load
Java classes into the Java Virtual
Machine dynamically. 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.
Java language provides these securities by
default. Some security can also be provided by
an application developer explicitly through
SSL, JAAS, Cryptography, etc.
Robust
Robust simply means strong. Java is robust
because:
o Ituses strong memory management.
© There is a lack of pointers that avoids
security problems.java 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 usable 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
dynamic loading of classes. It means classes
are loaded on demand. It also supports
functions from its native languages, i.e., C and
C++.Difference between JDK,
JRE, and JVM
We must understand the differences between
JDK, JRE, and JVM before proceeding further
to Java. See the brief overview of JVM here.
If you want to get the detailed knowledge of
Java Virtual Machine, move to the next page.
Firstly, let's see the differences between the
JDK, JRE, and JVM.
JVM
JVM (Java Virtual Machine) is an abstract
machine. It is called a virtual machine because
it doesn't physically exist. It is a specification
that provides a runtime environment in which
Java bytecode can be executed. It can also run
those programs which are written in other
languages and compiled to Java bytecode.JVMs are available for many hardware and
software platforms. JVM, JRE, and JDK are
platform dependent because the configuration
of each OS is different from each other.
However, Java is platform independent. There
are three notions of the JVM: specification,
implementation, and instance.
The JVM performs the following main tasks:Oo
°
°
Loads code
Verifies code
Executes code
Provides runtime environmentJRE
JRE is an acronym for Java Runtime
Environment. It is also written as Java RTE.
The Java Runtime Environment is a set of
software tools which are used for developing
Java applications. It is used to provide the
runtime environment. It is the implementation
of JVM. It physically exists. It contains a set of
libraries + other files that JVM uses at runtime.
The implementation of JVM is also actively
released by other companies besides Sun
Micro Systems.
Set of libraries
e.g, rtjar etc.
JVM
Other files
JRE— IDK
JDK is an acronym for Java Development Kit.
The Java Development Kit (JDK) is a software
development environment which is used to
develop Java applications and applets. It
physically exists. It contains JRE +
development tools.
JDK is an implementation of any one of the
below given Java Platforms released by Oracle
Corporation:
© Standard Edition Java Platform
° Enterprise Edition Java Platform
© Micro Edition Java Platform
The JDK contains a private Java Virtual
Machine (JVM) and a few other resources
such as an interpreter/loader (java), a compiler
(Javac), an archiver (jar), a documentation
generator (Javadoc), etc. to complete thedevelopment of a Java Application.
Set of libraries
vecneettes me e.g. rtjar etc.
Development
tools e.g.
javac, java etc.
JDKC++ vs Java
There are many differences and similarities between
the C++ programming language and Java. A list of top
differences between C++ and Java are given below:
Comparison
Index
Platform-
independent
Mainly used for
C++
C+tis
platform-
dependent.
C++ is mainly
used for
system
programming.
Java
Java is
platform-
independent.
Java is mainly
used for
application
programming. It
is widely used in
window, web-
based,
enterprise and
mobile
applications.Design Goal C++ was
designed for
systems and
applications
programming.
It was an
extension of C
programming
language.
Goto C++ supports
the goto
statement.
Java was
designed and
created as an
interpreter for
printing
systems but
later extended
as a support
network
computing. It
was designed
with a goal of
being easy to
use and
accessible to a
broader
audience.
Java doesnt
support the goto
statement.Multiple
inheritance
Operator
Overloading
Pointers
C++ supports
multiple
inheritance.
C++ supports
operator
overloading.
C++ supports
pointers. You
can write
pointer
program in
C++.
Java doesn't
support multiple
inheritance
through class. It
can be achieved
by interfaces in
java.
Java doesn't
support
operator
overloading.
Java supports
pointer
internally.
However, you
cant write the
pointer program
in java. It means
java has
restricted
pointer support
in java.Compiler and
Interpreter
Call by Value
and Call by
reference
C++ uses
compiler only.
C++ is
compiled and
run using the
compiler
which converts
source code
into machine
code so, C++
is platform
dependent.
C++ supports
both call by
value and call
by reference.
Java uses
compiler and
interpreter both.
Java source
code is
converted into
bytecode at
compilation
time. The
interpreter
executes this
bytecode at
runtime and
produces
output. Java is
interpreted that
is why it is
platform
independent.
Java supports
call by value
only. There is no
call by reference
in java.Structure and
Union
Thread Support
Documentation
comment
C++ supports
structures and
unions.
C++ doesn't
have built-in
support for
threads. It
relies on third-
party libraries
for thread
support.
C++ doesn't
support
documentation
comment.
Java doesn't
support
structures and
unions.
Java has built-in
thread support.
Java supports
documentation
comment (/** ...
*/) to create
documentation
for java source
code.Virtual
Keyword
unsigned right
shift >>>
C++ supports
virtual keyword
so that we can
decide
whether or not
override a
function.
C++ doesn't
support >>>
operator.
Java has no
virtual keyword.
We can override
all non-static
methods by
default. In other
words, non-
static methods
are virtual by
default.
Java supports
unsigned right
shift >>>
operator that
fills zero at the
top for the
negative
numbers. For
positive
numbers, it
works same like
>> operator.Inheritance
Tree
Hardware
C++ creates a
new
inheritance
tree always.
C++ is nearer
to hardware.
Java uses a
single
inheritance tree
always because
all classes are
the child of
Object class in
java. The object
class is the root
of the
inheritance tree
in java.
Java is not so
interactive with
hardware.Object-
oriented
C++ is an
object-oriented
language.
However, in C
language,
single root
hierarchy is
not possible.
Java is also an
object-oriented
language.
However,
everything
(except
fundamental
types) is an
object in Java. It
is a single root
hierarchy as
everything gets
derived from
java.lang.Object.Note
eo Java doesn't support default arguments like
C++.
o Java does not support header files like C++.
Java uses the import keyword to include
different classes and methods.