Java and its Evolution
Rajkumar Buyya
Grid Computing and Distributed Systems Lab
Dept. of Computer Science and Software
Engineering
The University of Melbourne
http://www.buyya.com
Contents
Java Introduction
Java Features
How Java Differs from other OO
languages
Java and the World Wide Web
Java Environment
Build your first Java Program
Summary and Reference
Java - An Introduction
Java - The new programming language
developed by Sun Microsystems in 1991.
Originally called Oak by James Gosling,
one of the inventors of the Java
Language.
Java -The name that survived a patent
search
Java Authors: James , Arthur Van , and
others
Java is really “C++ -- ++ “
Java Introduction
Originally created for consumer
electronics (TV, VCR, Freeze, Washing
Machine, Mobile Phone).
Java - CPU Independent language
Internet and Web was just emerging, so
Sun turned it into a language of Internet
Programming.
It allows you to publish a webpage with
Java code in it.
Java Milestones
Year Development
1990 Sun decided to developed special software that could be
used for electronic devices. A project called Green Project
created and head by James Gosling.
1991 Explored possibility of using C++, with some updates
announced a new language named “Oak”
1992 The team demonstrated the application of their new
language to control a list of home appliances using a
hand held device.
1993 The World Wide Web appeared on the Internet and
transformed the text-based interface to a graphical rich
environment. The team developed Web applets (time
programs) that could run on all types of computers
connected to the Internet.
Java Milestones
Year Development
1994 The team developed a new Web browsed called “Hot
Java” to locate and run Applets. HotJava gained instance
success.
1995 Oak was renamed to Java, as it did not survive “legal”
registration. Many companies such as Netscape and
Microsoft announced their support for Java
1996 Java established itself it self as both 1. “the language for
Internet programming” 2. a general purpose OO
language.
1997- A class libraries, Community effort and standardization,
Enterprise Java, Clustering, etc..
Sun white paper defines Java as:
Simple and Powerful
Safe
Object Oriented
Robust
Architecture Neutral and Portable
Interpreted and High Performance
Threaded
Dynamic
Java Attributes
Familiar, Simple, Small
Compiled and Interpreted
Platform-Independent and Portable
Object-Oriented
Robust and Secure
Distributed
Multithreaded and Interactive
High Performance
Dynamic and Extensible
Java is Compiled and Interpreted
Hardware and
Programmer
Operating System
Source Code Byte Code
Text Editor Compiler Interpreter
.java file .class file
Notepad, javac java
emacs,vi appletviewer
netscape
Compiled Languages
Programmer
Source Code Object Executable
Code Code
Text Editor Compiler linker
.c file .o file a.out file
Notepad, gcc
emacs,vi
Total Platform Independence
JAVA COMPILER
(translator)
JAVA BYTE CODE
(same for all platforms)
JAVA INTERPRETER
(one for each different system)
Windows 95 Macintosh Solaris Windows NT
Architecture Neutral & Portable
Java Compiler - Java source code (file
with extension .java) to bytecode (file
with extension .class)
Bytecode - an intermediate form, closer
to machine representation
A interpreter (virtual machine) on any
target platform interprets the bytecode.
Architecture Neutral & Portable
Porting the java system to any new
platform involves writing an interpreter.
The interpreter will figure out what the
equivalent machine dependent code to
run
Rich Class Environment
Core Classes
language
Utilities
Input/Output
Low-Level Networking
Abstract Graphical User Interface
Internet Classes
TCP/IP Networking
WWW and HTML
Distributed Programs
How Does Java Compares to C+
+ and Other OO Languages
Overlap of C, C++, and Java
C++
C Java
Java better than C++ ?
No Typedefs, Defines, or Preprocessor
No Global Variables
No Goto statements
?
No Pointers
No Unsafe Structures
No Multiple Inheritance
No Operator Overloading
No Automatic Coercions
No Fragile Data Types
Object Oriented Languages -A Comparison
Feature C++ Objective Ada Java
C
Encapsulation Yes Yes Yes Yes
Inheritance Yes Yes No Yes
Multiple Inherit. Yes Yes No No
Polymorphism Yes Yes Yes Yes
Binding (Early or Late) Both Both Early Late
Concurrency Poor Poor Difficult Yes
Garbage Collection No Yes No Yes
Genericity Yes No Yes Limited
Class Libraries Yes Yes Limited Yes
Java Integrates
Power of Compiled Languages
and
Flexibility of Interpreted Languages
Java Applications
We can develop two types of Java
programs:
Stand-alone applications
Web applications (applets)
Applications v/s Applets
Different ways to run a Java executable
are:
Application- A stand-alone program that can be invoked
from command line . A program that has a “main”
main
method
Applet- A program embedded in a web page , to be run
when the page is browsed . A program that contains
no “main” method
Applets v/s Applications
Different ways to run a Java executable are
Application- A stand-alone program that can be invoked
from command line . A program that has a “main”
main
method
Applet- A program embedded in a web page , to be run
when the page is browsed . A program that contains no
“main” method
Application –Executed by the Java
interpreter.
Applet- Java enabled web browser.
Java and World Wide Web
Turning the Web into an
Interactive and Application
Delivery Platform
What is World Wide Web ?
Web is an open-ended information retrieval
system designed to be used in the Internet
wide distributed system.
It contains Web pages (created using HTML)
that provide both information and controls.
Unlike a menu driven system--where we are
guided through a particular direction using a
decision tree, the web system is open ended
and we can navigate to a new document in any
direction.
Web Structure of Information
Search/Navigation
Web as a delivery Vehicle
Execution of Applets
1 2 3 4 5
APPLET hello.class Create Accessing The browser
Development AT SUN’S Applet from creates
“hello.java” WEB tag in Unimelb.edu.au a new
AT SERVER HTML window and
SUN.COM document a new thread
and
then runs the
code
Hello Java
<app=
“Hello”> The Internet
Hello
Significance of downloading Applets
Interactive WWW
Flashy animation instead of static web pages
Applets react to users input and dynamically
change
Display of dynamic data
WWW with Java - more than a document
publishing medium
http://www.javasoft.com/applets/alpha/applets
/StockDemo/standalone.html
Power of Java and the Web
Deliver applications, not just information
Eliminate porting
Eliminate end-user installation
Slash software distribution costs
Reach millions of customers - instantly
Java Development Kit
javac - The Java Compiler
java - The Java Interpreter
jdb- The Java Debugger
appletviewer -Tool to run the applets
javap - to print the Java bytecodes
javaprof - Java profiler
javadoc - documentation generator
javah - creates C header files
Java Environment
Java Development Kit
javac - The Java Compiler
java - The Java Interpreter
jdb- The Java Debugger
appletviewer -Tool to run the applets
javap - to print the Java bytecodes
javaprof - Java profiler
javadoc - documentation generator
javah - creates C header files
Process of Building and Running Java
Programs
Text Editor
Java Source
javadoc HTML Files
Code
javac
Java Class File javah Header Files
java jdb
Outout
Let us Try Out
Building your first Java Program
Hello Internet
// hello.java: Hello Internet program
class HelloInternet
{
public static void main(String args[])
{
System.out.println(“Hello Internet”);
}
}
Program Processing
Compilation
# javac hello.java
results in HelloInternet.class
Execution
# java HelloInternet
Hello Internet
#
Simple Java Applet
//HelloWorld.java
import java.applet.Applet;
import java.awt.*;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString (“Hello World !”,25, 25);
}
}
Calling an Applet
<HTML>
<TITLE>HELLO WORLD APPLET</TITLE>
<HEAD>THE HELLO WORLD APPLET</HEAD>
<APPLET CODE=“HelloWorld.class” width=500
height=500>
</APPLET>
</HTML>
Applet Execution
Using AppletViewer
Using Browser
Java on my platform ?
Sun (SPARC) ftp://java.sun.com
Sun(x86) ftp://xm.com:/pub/
IBM(Aix, OS/2)ftp://ncc.hursley.ibm.com/javainfo
DEC(Alpha OSF/1)
http://www.gr.osf.org:8001/projects/web/java/
SGI http://liawww.epfl.ch/~simon/java/irix-jdk.html
HP http://www.gr.osf.org:8001/projects/web/java
linux http://www.blackdown.org
AT & T http://www.gr.osf.org:8001/projects/web/java
Windows 3.1 http://www.alphaworks.ibm.com
Summary
Java has emerged as a general purpose
OO language.
It supports both stand alone and
Internet Applications.
Makes the Web Interactive and medium
for application delivery.
Provides an excellent set of Tools for
Application Development.
Java is ubiquitous!
References
Chapter 2: “Java Evolution”,
Programming with Java by Balagurusamy,
TMH, New Delhi, India
Optional:
Chapter 1: “Mastering C++” by V. Rajuk and
R. Buyya, Tata McGraw Hill, New Delhi,
India.