Download Java Platform overview (JP)

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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 multithreading 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.
Source program
In Java
javac
bytecode
java
Java
Virtual Machine
(interpret the bytecode
Like a physical processor)
Underlying OS (Windows / Unix / …)
–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

•
Compiler/Interpreter Combo
–
The Write-Once-RunAnywhere 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.
•
Robust
–
•
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.
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.