Java - An Introduction
• Java - The new programming language from
Sun Microsystems
• Java -Allows anyone to publish a web page
with Java code in it
• Java - CPU Independent language
• Java - James , Arthur Van , and others
• Java -The name that survived a patent
search
• Oak -The predecessor of Java
• Java is “C++ -- ++ “
Java as Object Oriented
• “Objects all the way down”
• Simple and Familiar: “C++ Lite”
• No Pointers!
• Dynamic Binding
• Single Inheritance with “Interfaces”
According to Sun, Java is...
• Simple and Powerful
• Object Oriented
• Portable
• Architecture Neutral
• Distributed
• Multi-threaded
• Robust, Secure/Safe
• Interpreted
• High Performance
• Dynamic pogramming language/platform.
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
Must Run on Any Architecture
debug
“WRITE ONCE, RUN ANYWHERE!”
pretty portable
Program Java Java
in Java Compiler Bytecode
Java Virtual Machine Java Virtual Machine
Why Java?
• It’s the current “hot” language
• It’s entirely object-oriented
• It has a vast library of predefined objects
and operations
• It’s more platform independent
– this makes it great for Web programming
• It’s more secure
• It isn’t C++
Java in the World of
Distributed Computing
• Class Loader
• Lightweight Binary Class Files
• Multithreading
• Dynamic
• Good communication constructs
• Secure
Object Oriented Languages
-a Comparison
Objective
Feature C++ C Ada Java
Encapsulation Yes Yes Yes Yes
Inheritance Yes Yes No Yes
Multiple Inherit. Yes Yes No No
Polymorphism Yes Yes Yes Yes
Binding (Early/Late) Both Both Early Late
Concurrency Poor Poor Difficult Yes
Garbage Collection No Yes No Yes
Genericity Yes No Yes No
Class Libraries Yes Yes Limited Yes
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
So What’s Java Good For?
Java Applet
Java Applet
Server
The Java programming
environment
• Java programming language specification
– Syntax of Java programs
– Defines different constructs and their semantics
• Java byte code: Intermediate representation for Java programs
• Java compiler: Transform Java programs into Java byte code
• Java interpreter: Read programs written in Java byte code and execute
them
• Java virtual machine: Runtime system that provides various services
to running programs
• Java programming environment: Set of libraries that provide services
such as GUI, data structures,etc.
• Java enabled browsers: Browsers that include a JVM + ability to load
programs from remote hosts
11
Applets, Servlets and
Applications
• An applet is designed to be embedded in a
Web page, and run by a browser
• Applets run in a sandbox with numerous
restrictions; for example, they can’t read
files and then use the network
• A servlet is designed to be run by a web
server
• An application is a conventional program
Java on the Web: Java Applets
• Clients download applets via Web browser
• Browser runs applet in a Java Virtual
Machine Applet
(JVM)
Client
Server
Interactive web, security, and client consistency
Slow to download, inconsistent VMs (besides,
flash won this war)
Java on the Web: J2EE
• Thin clients (minimize download)
• Java all “server side”
JSPs
Servlets
Client
Server
EJB
JDBC
Applets and GUI
AWT & Applets
An Applet is a Java program capable of running from within a web page
(HTML document)
Steps to incorporate and run an applet:
· Have MyApplet.java
· javac MyApplet.java
· Have MyApplet.class
· Create MyApplet.html
<applet code = MyApplet.class width = 200 height = 300 >
</applet>
· appletviewer MyApplet.html (or open MyApplet.html in browsers like
Netscape/IE).
Applet methods
Unlike Applications, Applets do not have
main().
Instead, they have : init(), start(), stop(),
paint(), update(), repaint(), destroy().
All methods need not be implemented -- there
are default versions for all of them.
• AppletContext
– “Applet” derived from AWT Panel
Hooks into Browser environment
Can be used to link to another Web page
Multithreading in Java
(A built-in feature in Java)
Single and Multithreaded
Processes
threads are light-weight processes within a process
Single-threaded Process Multiplethreaded Process
Threads of
Execution
Single instruction stream Multiple instruction stream
Common
Address Space
Thread states
new
wait()
start() sleep()
suspend()
blocked
runnable non-runnable
notify()
stop() slept
resume()
unblocked
dead
Threading Mechanisms...
• Create a class that extends the Thread class
• Create a class that implements the Runnable interface
Threads in Action...
Multithreaded Server
Server Process
Client Process
Server
Threads
Client Process
User Mode
Kernel Mode
Message Passing
Facility
Just to Summarize
Java as a Comprehensive Programming
Solution
Object Oriented
Portable
High Performance
Geared for Distributed Environments
Secure
Highly suitable for Internet programming
• Java is really very well poised
• Incredible leverage from the Web
• Will impact the C++ and Smalltalk markets
• Rate of progress is astonishingly high
– Development environments
– CORBA linkages
– Components
Thank
Thank You
You ...
...