[go: up one dir, main page]

0% found this document useful (0 votes)
19 views37 pages

WDD Lec 02

Uploaded by

bin.azad101
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views37 pages

WDD Lec 02

Uploaded by

bin.azad101
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 37

Web Design & Development

Lecture 2
Intro to Java
Topics We Will Cover Today
 History of Java
 Why Java ?
 Some Sample Java Based Applications
 Writing a Basic Java Program
 Java Program Development and Execution Steps
History
 Java
 Based on C and C++
 Developed in 1991 for intelligent consumer electronic devices
 Green Project (According to Gosling, "the goal was ... to build
a system that would let us do a large, distributed,
heterogeneous network of consumer electronic devices all
talking to each other." )
 James Gosling Modified C++
 Named Oak then Java
History….
 Platform independent
 Interpreted Language
 Intermediate Code (Byte Code)
 Reliable
 Multiple inheritance and Operator overloading
removed
 No Pointers because of security reasons
 Built in network support
History…
 Internet exploded in 1993, saved project
 Reliability
 Security

 Platform Independence

 Java formally announced in 1995


 Now used to create interactive web
applications, distributed enterprise
application for consumer devices
(pagers, cell phones) and much more..
Why Java???
Motivation 
 Portable WORA!!!!!!
 Simple
 “Pure” Object Oriented Language
 Support for Distributed and Web Applications
 Rich Libraries
 Multithreading , Swing , RMI , NET , SQL …..

 Automatic Garbage Collection


 More Robust
Portable
 “Write-Once Run-Anywhere”
 The Java Virtual Machine becomes the
common denominator
 Bytecodes are common across all platforms
 JVM hides the complexity of working on a
particular platform
 Difficult to implement a JVM
 But simpler for the application developer
 Java does this well
Java Platform
The Java Platform

App1 App2 App3 App4 App5

Java Virtual Machine

Windows Linux OS X Solaris Linux

Intel PowerPC SPARC


Simple
 Similar to C/C++ in syntax
 In-fact Java is C++ minus
 operator overloading
 direct pointer manipulation or pointer arithmetic
 multiple inheritance
 Destructors (Garbage Collector– handles memory
automatically)
 No Templates
 Header/make files

 Lots of other things which make Java more attractive.


Object-Oriented
 Fundamentally based on OOP

 All functions belong to classes or objects. No global


variables or functions exist

 All classes by default inherit from a common ancestor


known as “Object”

 “Almost” all data types are objects

 OOP will be covered in a little more detail later.


Distributed / Network
Oriented
 Java grew up in the days of the Internet
 Inherently network friendly
 Original release of Java came with Networking
libraries
 Newer releases contain even more for
handling distributed applications
 RMI, Transactions
Support for
Web and Enterprise Applications
 Given below are some of the Java technologies that can
be used for web and enterprise application development
 Servlets
 JSP
 Applets
 JDBC
 RMI
 EJBs
 JSF
And many more…
Robust / Secure / Safe
 Designed with the intention of being secure
 No pointer arithmetic or memory management!
 The JVM “verifier”
 Checks integrity of byte-codes

 Dynamic runtime checking for pointer and array access


 No buffer overflow bugs!

 SecurityManager to check which operations a piece of


code is allowed to do
 “Sandbox” operation for applets and other untrusted
code
 Limited set of operations or resources made available

 Contrast to ActiveX
Rich Set of Libraries
 Multithreading
 Swing
 Regular Expression
 NET
 SQL
 Util
 Serialization …………….
Java Programmer Efficiency
 Faster Development
 More programmer friendly
 Less error prone
 OOP
 Easier to manage large development projects
 Robust memory system
 No pointer arithmetic and manual memory
management. Garbage collector!
 Libraries
 Re-use of code
Disadvantages 
 Java performance IS slower than C/C++

Tradeoff between development time vs. run time

Additional checks in Java which make is secure and
robust and network aware etc, all have a small cost.
 BUT
 JIT compilation and HotSpot

Dynamic compilation of bytecode to native code at
runtime to improve performance
 HotSpot optimizes code on the fly based on dynamic
execution patterns

Can sometimes be even faster than compiled C code!

 Increasing processing speeds helps in overcoming


this short fall
Microsoft vs. Java
 Java is platform independent
 Was considered a threat to Microsoft’s
dominance
 Sun vs. Microsoft Law Suit

 Microsoft’s latest response to Java


 C#
 Very similar to Java in structure and style
 Some improvements over past releases of Java
(which have now emerged in Java 1.5)
Some Sample Java Based
Applications
Hubble Space Telescope
Monitoring
 NASA Goddard’s most
successful project ever
 Launched in 1990.
 Has sensitive light
detectors and cameras
 Provided view of
galaxies up to 10 billion
light years away
Mars Pathfinder Mission
Simulator
 Used for world-wide data
viewing
 Winner of the 1997 NASA
software of the year
 The current rover location
is displayed, along with
visual indications of
“targets”
 Provides close-ups of the
wedge photograph
IntelliBrain™ -Bot
 Java Programmable
 RoboJDE™ java enabled
robotics software
development environment
 Makes developing,
debugging robotics
program a snap
Star Office 5.2
 Cross platform Office
suite completely written
in java
Web Based
Course Registration System
Web Based Performance Review
Management System
Web Based
School Management System
Writing Basic Java
Program
Syntax for C++ programmers
Software Requirements
 For the start following software will do the job
 You need to have the latest version of JDK.
(J2SE 5.0) You can download it for free from
 http://java.sun.com/j2se/
 A little older versions such JDK 1.4 or 1.3 will
also work
 Notepad
 And you should set your path variable.
Canonical Example
HelloWorld Application in Java
/* The HelloWorldApp class implements an application
that simply displays "Hello World!" to the standard
output. */

public class HelloWorldApp {

public static void main(String[] args) {

//Display the string. No global main

System.out.println("Hello World!"); }
}
Compiling and Running
the program
 Save this file in some directory and compile it
using
 javac HelloWorldApp.java

 Run the compiled file by using the command


 java HelloWorldApp
Java Program Development and
Execution Steps
 Java Systems
 Consist of environment, language, Java Applications
Programming Interface (API)
 Java programs have five phases

1. Edit
 .java extension

2. Compile
 javac command: javac MyProgram.java

 Creates .class file containing bytecodes with similar name


Java Program Development and
Execution Steps…
3. Loading
 Class loader transfers .class file into memory
 Classes loaded and executed by interpreter with

java command
 To load,

appletviewer Welcome.html
OR
java MyProgram
Java Program Development and
Execution Steps…

4. Verify
 Bytecode verifier makes sure bytecodes are valid
and do not violate security

5. Execute
 Computer interprets program one bytecode at a
time
 Performs actions specified in program
Program is created in
Phase 1 Editor Disk the editor and stored
on disk.
Compiler creates
Phase 2 Compiler Disk bytecodes and stores
them on disk.
Primary
Memory
Class Loader
Phase 3
Class loader puts
bytecodes in memory.
Disk
..
..
..
Primary
Memory
Bytecode Verifier
Phase 4 Bytecode verifier
confirms that all
bytecodes are valid
and do not violate
Java’s security
.. restrictions.
..
..
Primary
Interpreter Memory Interpreter reads
Phase 5 bytecodes and
translates them into a
language that the
computer can
understand, possibly
.. storing data values as
.. the program executes.
..
Understanding Basics

 Naming Conventions
 MyClass
 myMethod()
 myVariable
 MY_CONSTANT

You might also like