Java Platform overview (JP)

errorhandleSoftware and s/w Development

Nov 18, 2013 (3 years and 11 months ago)

89 views

Java Platform overview (JP)

History of Java [1]

1990


James Gosling, Bill Joy and
others at Sun Microsystems
developed a language called
Oak
.


Primarily they wanted this to
control microprocessors
embedded in consumer items
like cable set
-
top boxes, VCRs,
toasters and PDAs


To serve the above goals, Oak
had to be


Platform independent
(multiplicity of manufacturers)


Extremely reliable


Compact


By 1993


Interactive TV and PDA
markets failed to take off


The Internet and Web explosion
began then, and so Sun shifted
the target market to Internet
applications and changed the
project name to Java from Oak


1994


Sun’s
HotJava
browser
appeared , illustrating the
power of
applets



programs
that run within a browser, as
well as showing the power of
Java in speeding up program
development


History of Java [2]

Growth


Riding along with the explosion
of interest and publicity of the
internet, Java quickly gained
widespread recognition and
expectations grew for it to
become the dominant software
for browser and consumer
applications


Early versions of Java did not
possess the breadth or depth of
capabilities needed for client
(i.e.consumer) applications.
People say that the graphics in
Java 1.0 appeared crude and
clumsy compared to programs
developed in C with libraries


Applets


Became popular and remained
common but don’t dominate
interactive or multimedia
displays on web pages.


1994


Sun’s
HotJava
browser
appeared , illustrating the
power of
applets



programs
that run within a browser, as
well as showing the power of
Java in speeding up program
development


History of Java [3]

Results


Java has not been too
successful in the development
of consumer application.
However, Java’s capabilities
grew with the release of newer
and expanded versions and it
has become a very popular
language for development of
enterprise

or
middleware

applications such as on
-
line
web stores, transaction
processing, database interfaces
and so on


Other


Java has also become common
on smaller platforms such as
cell phones and PDAs. Java is
now used on several types of
cell phone models


Various releases of Java [1]

Version
and year

What it
contained

Remarks

1.0, 1995

8 packages with
212 classes
(referred to as the
JDK


Java
Development Kit)

Since introduction, Sun has released a new version of
Java every 2 years, which brought enhancements, new
capabilities and fixes to bugs (and of course new bugs !).
Until recently, the versions were numbered as 1.x
(Intermediate releases were labeled as 1.x.y as in 1.4.2).
Later it was referred to as Java 5.0 rather than 1.5

1.1, 1997

23 packages, 504
classes

Improvements


better event handling, inner classes

Swing packages of greatly improved graphics , but not
included with the core language

1.2, 1999

59 packages,
1520 classes (also
called the Java 2
Platform)

Code and tools distributed as
The Software
Development Kit
(SDK)

Java Foundation Classes (JFC), based on Swing, for
improved graphics. Collections API included support for
various lists, sets and hash maps

1.3, 2000

76 packages,
1842 classes

Performance enhancements including the
Hotspot

virtual
machine

Various releases of Java [2]

Version
and year

What it
contained

Remarks

1.4, 2002

135 packages,
2991 classes

Improved I/O, XML support etc.,

5.0, 2004

(previously
1.5)

165 packages,
over 3000 classes

Faster startup and smaller memory footprint

Generics, Formatted output and improved multi
-
threading features

6.0, 2008


In the late 1990s, Sun split off specialized branches or editions of Java. One is aimed
at small, embedded applications and the other for large scale middleware applications.


Micro Java : Embedded systems as cell phones and device controllers offer reduced
resources as compared with desktop PCs. This may mean less or no disk space, less
of other types of non
-
volatile memory and smaller or no display. The slimmed down
versions of Java are
JavaCard
,
EmbeddedJava
,
PersonalJava
,
J2ME (Java 2
Platform, Micro Edition)



J2EE (
Java 2 Platform, Enterprise Edition
) With the Java 2 platform came a
separate version with enhanced resources targeted at Enterprise applications. The
J2EE now provides a wide array of tools for building middleware software such as
database access applications, online storefronts and other services.

General remarks for the
beginner

Conventions of name


All of these editions and
version numbers can be
quiet confusing for the
beginner. Terms change
such as
Java Development
Kit

becoming

Software
Development Kit
.


The terms Java 1.x, SDK
1.x and J2SE 1.x are
interchangeably used, as
well as for Java 5.0, SDK
5.0 and J2SE 5.0


The Java Platform


The word “Platform” is used to
denote the whole Java
programming environment
including the compiler, JVM and
the various other tools available
for working with the language.

javac

Source program

In
Java


bytecode

Java

Virtual Machine

(interpret the bytecode

Like a physical processor)

Underlying OS (Windows / Unix / …)

java


Sun provides set of programming tools such as javac, java and others in a bundle it
calls the Java Software Development Kit, a separate one offered for different platforms
such as Windows, Linux etc., It also provides a run
-
time bundle only with the JVM
when the programming tools are not needed.


Because of the open nature of Java, any part of these can be replaced by non
-
Sun
components. Just as many different languages can create machine code for a given
processor, compilers of other languages have been created that output bytecode to run
in the JVM. Many JVMs have been written by groups outside of Sun (e.g. Microsoft has
its own version of the JVM).

Features of Java

Platform Independence


The
Write
-
Once
-
Run
-
Anywhere

ideal has not
been achieved (tuning for
different platforms usually
required), but closer than
with other languages.

Object Oriented


Object oriented throughout
-

no coding outside of class
definitions, including
main()
.


An extensive class library
available in the core
language packages.



Compiler/Interpreter Combo


Code is compiled to bytecodes that
are interpreted by a Java virtual
machines (JVM) .


This provides portability to any
machine for which a virtual machine
has been written.


The two steps of compilation and
interpretation allow for extensive
code checking and improved
security.


Robust


Exception handling built
-
in, strong
type checking (that is, all data must
be declared an explicit type), local
variables must be initialized.


Automatic Memory Management


Automatic garbage collection
-

memory management handled by
JVM.


Features of Java …

Security


No memory pointers


Programs runs inside the virtual
machine sandbox


Array index limit checking

Good Performance


Interpretation of bytecodes slowed
performance in early versions, but
advanced virtual machines with
adaptive and just
-
in
-
time compilation
and other techniques now typically
provide performance up to 50% to
100% the speed of C++ programs.


Threading


Lightweight processes, called
threads, can easily be spun off to
perform multiprocessing.


Can take advantage of
multiprocessors where available


Great for multimedia displays.


Built
-
in Networking


Java was designed with networking
in mind and comes with many
classes to develop sophisticated
Internet communications.