Introduction to Java Programming - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

Introduction to Java Programming

Description:

Micro edition (j2me): v1.0,CLDC1.1,MIDP2.0, ... jnlp spec='1.0' codebase='http://xml.cs.nccu.edu.tw/courses/java/java2003fall/jws ... – PowerPoint PPT presentation

Number of Views:348
Avg rating:3.0/5.0
Slides: 42
Provided by: chengch
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Java Programming


1
Introduction to Java Programming
  • Cheng-Chia Chen
  • Feburary 2008

2
Course web page
3
Lecture 1. Introduction
  • Cheng-Chia Chen

4
Contents
  • What is Java?
  • Features of Java
  • Evolution of Java
  • Develop first Java program
  • Deploy java programs through the internet
  • via Java applet
  • via Java Web Start

5
What is Java?
  • Java is
  • a programming language,
  • defined in The Java language specification
    (v1,v2,v3)
  • a virtual machine,
  • Defined in The java virtual machine (v1, v2)
  • a platform
  • Standard edition (java se)
  • Java platform standard edition 6.0
  • Enterprise edition(j2ee) V5.0
  • Micro edition (j2me) v1.0,CLDC1.1,MIDP2.0,

6
servers enterprise computers
Desktop personal computers
High-end consumer devices
Low-end devices
J2ME
smartcards
Java 2 Platform editions and their target markets
7
(No Transcript)
8
  • Java SE 6 Platform at a Glance

9
What is J2EE ?
  • source
  • What is the Java 2 Platform, Enterprise Edition
    (J2EE)?
  • a platform that enables solutions for developing,
    deploying and managing multi-tier server-centric
    applications.
  • Extend J2SE to a complete, stable, secure, fast
    Java platform to the enterprise level.
  • A platform which significantly reduces the cost
    and complexity of developing multi-tier
    solutions, results in services that can be
    rapidly deployed and easily enhanced.

10
Benefits of J2EE
  • 1. Complete Web services support.
  • 2. Faster solutions delivery time to market.
  • Enterprise infrastructure and concerns provided
    and solved by j2ee.
  • Developers need only focus on writing business
    logic .
  • 3. Freedom of choice.
  • System assembled from standard components which
    can be supplied by various vendors.
  • 4. Simplified connectivity.
  • Supply standard to connect legacy systems,
    enterprise information system, and bring
    capability to web and mobile devices.
  • 5. Reduce TCO(total cost of ownership) and avoid
    single-source for software needs of enterprises.

11
Technologies included in J2EE
  • Java API for XML-Based RPC (JAX-RPC),
  • JavaServer Pages, Java Servlets,
  • Enterprise JavaBeans components,
  • J2EE Connector Architecture,
  • J2EE Management Model,
  • J2EE Deployment API,
  • Java Management Extensions (JMX),
  • J2EE Authorization Contract for Containers,
  • Java API for XML Registries (JAXR),
  • Java Message Service (JMS),
  • Java Naming and Directory Interface (JNDI),
  • Java Transaction API (JTA),
  • CORBA, and
  • JDBC data access API.

12
What is J2ME ?
  • 1.What is the Java 2 Platform, Micro Edition
    (J2ME)?
  • The JavaTM 2 Platform, Micro Edition is the
    edition of the Java 2 platform targeted at
    consumer electronics and
    embedded devices.
  • The J2ME technology consists of a virtual machine
    (KVM) and a set of APIs suitable for providing
    tailored runtime environments for consumer and
    embedded electronics.
  • Configurations v.s. profiles
  • Device characteristics
  • memory size / processor
  • size and depth of display screen (UI)
  • power consumption (battery-based)
  • networking capability (limited, not TCP/IP
    based?)

13
Features of the java language
  • Java is
  • simple
  • object-oriented
  • distributed
  • interpreted
  • robust
  • secure
  • architecture-neutral
  • portable
  • high performance
  • multithreaded
  • dynamic

14
Java is Simple
  • Intentionally created to be syntactically similar
    to C/C
  • Eliminates traditionally troublesome features of
    C/C
  • Pointer arithmetic
  • Multiple inheritance
  • Implicit type coercions
  • Explicit memory management
  • Preprocessor
  • Eliminates features of C/C
  • struct
  • typedef
  • union
  • enum (recovered in jdk5.0)
  • (Programmer controlled) operator overloading
  • Features included as part of base language
  • Threads
  • Exception handling

15
Java is Object-oriented
  • Systems are built from sets of classes
  • Classes are instantiated at runtime to give
    objects
  • Objects communicate via messages passing
  • Everything is part of a class
  • supported OO Concepts
  • Data abstraction and Encapsulation
  • Inheritance
  • Polymorphism
  • Dynamic Binding
  • e.g. variable of Object type can hold everything
  • Logical cluster of classes package

16
Java is a Distributed language
  • Network programming support built into JDK class
    library
  • TCP sockets
  • UDP packets
  • IP addresses
  • URLs
  • RMI (Remote Method Invocation)
  • Web Service
  • Security features designed into language
  • Network programming facilities are one of the
    language's best features.

17
Java is an Interpreted language
  • Source code is initially compiled (javac) into
    architecture-neutral byte-codes
  • Byte-codes are interpreted by the java virtual
    machine (JVM) (java or Netscape)
  • Dynamic linking/loading (at run time)
  • (Just In Time) JIT compilers lead to a large
    performance increase in compilation and runtime
    execution

18
Java is Robust
  • Strongly-typed language (cf Smalltalk and
    VisualBasic)
  • Compile-time and runtime checking
  • No pointer arithmetic
  • Exception handling
  • Automatic memory management

19
Java is secure
  • Designed with security in mind.
  • Allow users to download untrusted code over a
    network and run it in a secure environment in
    which it cannot do any harm.
  • Configurable security levels and restrictions.
  • subjected to intense scrutiny by security experts
    with potentially serious bugs found and fixed.
  • become a big news if new bugs found!!
  • One of the best mainstream platforms with the
    strongest security guarantee.

20
Java is Architecture-neutral
  • Byte-codes are architecture neutral
  • Performance suffers by using bytecodes

21
Java is portable
  • Primitive type sizes are explicit - not
    architecture dependent
  • Strings and characters are (16-bit) Unicode
    compliant
  • easier for internationalization.
  • GUI libraries give a native graphic
    library-independent mechanism for creating
    quality graphical interfaces (sort of)
  • "They gave us a library that is good for writing
    programs that look equally mediocre on the
    different systems."(Core Java, page 9)

22
High performance
  • Interpreting leads to quicker development cycle
  • Depends what you compare it to
  • "Slightly faster than VB" - (Core Java, page 9)
  • JITC(Just-In-Time Compiler) help greatly in this
    respect
  • Suns Java HotSpot is Newest high performace JIT
    compiler.
  • Can use native code for mission-critical
    performance sections of code
  • JNI Java Native Interface
  • Sacrifice portability.

23
Multithreaded
  • Based on well-known 20 year old Hoare monitor
    synchronization
  • Thread support built into language
  • Thread synchronization primitives supplied
  • Garbage collector runs permanently as a low
    priority background thread

24
Dynamic
  • Class linking, layout, name resolution and object
    references not resolved until run-time
  • Runtime Type Information (RTTI) available
  • Can check the type of objects at run-time
  • java.reflect. package
  • Class class for dynamic instantiation
  • Can create objects of types unkown until runtime.
  • String sexClassName getSex()
  • Object p Class.forName(sexClassName).instance()
  • If(p instanceof Male)
  • else if (p instanceof Female)
  • else

25
An Example
  • /
  • The HelloJava class implements an application
    that
  • simply displays "Hello Java!" to the standard
    output.
  • /
  • class HelloJava
  • public static void main(String
    args)
  • // Display "Hello Java!"
  • System.out.println("Hello
    Java!")

26
Prehistory of Java
  • Green Project (1990)
  • Consumer device operating software
  • Requirements small size, robust, portable,
    extremely reliable ,real-time performance
  • Oak
  • Originally used C, then realized a new language
    was needed
  • Original requirements same as for current
    language
  • Java (1993)
  • Intended market never eventuated
  • WWW starting to takeoff
  • Language design "based on" many current OO
    languages (e.g., C, Eiffel, Smalltalk,
    Cedar/Mesa, Objective C)
  • 1995/5/23 Sun launched Java
  • JDK 1.0 released early 1996/1/23 ( 211 classes /
    8 pkgs)

27
Evolution of the Java Language
28
Develop your first Java Program and applet
  • 1. Required software
  • 2. Creating Your First Application
  • a. Create a Java Source File
  • b. Compile the Source File
  • c. Run the Program
  • d. invoke the program remotely via Java Web
    Start.
  • 3. Creating Your First Applet
  • a. Create a Java Source File
  • b. Create related HTML files
  • c. Compile and run the Source File

29
Required Softwares
  • To write your first program, you will need
  • 1. The JavaTM 2 Platform, Standard Edition.
  • 2. A text editor. Ex
  • NotePad,
  • Ultraedit,
  • EditPlus2

30
2. Creating Your First Application
  • The first program, HelloWorldApp, will simply
    display Hello World!".
  • Steps
  • a. Create a Java source file.
  • gt Notepad HelloWorldApp.java
  • b. Compile the source file into a bytecode file.
  • gt javac HelloWorldApp.java
  • c. Run the program contained in the bytecode
    file.
  • gtjava HelloWorldApp
  • d. invoke the program remotely via Java Web
    Start.
  • d.1 gt jar cf HelloJWS.jar HelloWorlApp.class
  • d.2 prepare HelloJWS.jnlp
  • d.3 prepare web page to hyperlink
  • HelloJWS.jnlp

31
HelloJava.java
  • /
  • The HelloWorldApp class implements an
    application that
  • simply displays "Hello World!" to the standard
    output.
  • /
  • class HelloWorldApp
  • public static void main(String
    args)
  • // Display "Hello World!"
  • System.out.println("Hello
    World!")

32
(No Transcript)
33
JWS Architecture
34
d. Invoke Java application remotely via JWS
(web page)
lt?xml version"1.0" encoding"utf-8"?gt ltjnlp
spec"1.0" codebase"http//xml.cs.nccu.edu.
tw/courses/java/java2003fall/jws/"
href"helloJWS.jnlp"gt ltinformationgt
lttitlegtHello Java Web Startlt/titlegt
ltvendorgtCheng-Chia Chenlt/vendorgt lthomepage
href"index.html"/gt ltdescriptiongtA simpe
Demo of Java Web Start.lt/descriptiongt
ltoffline-allowed/gt lt/informationgt
ltresourcesgt ltj2se version"1.4"/gt
ltjar href"helloJWS.jar"/gt lt/resourcesgt
ltapplication-desc main-class"HelloJWS"/gt
lt/jnlpgt
ltA hrefhelloJWS.jnlpgt Start HelloJWS lt/Agt
example
HelloJWS.jar
35
Java 2 SDK Installation Instructions (for WIN32)
  • 1. Download java SDK standard edition
  • 2. Run the Java SDK executable (.exe).
  • determine where to install java se. (ex
    c\java\jdk6)
  • gt set JAVA_HOME c\java\jdk6
  • 3. Update the PATH variable
  • so that you can type java instead of
    c\java\jdk6\bin\java to invoke java tools.
  • gt pathJAVA_HOME\binPATH
  • 4. Check the CLASSPATH variable
  • Used by java tools to determine where to find
    your personal (nonsystem) java class files
  • Types of java byte codes (class files)
  • System java tools know where to find them.
  • Extensions put in JAVA_HOME\jre\lib\ext
  • Personal via CLASSPATH or cp/classpath options
  • 5. Start using the Java 2 SDK tools!
  • java, javac, javadoc, jdb, javap,

36
3. Creating Your First Applet
  • a. Create a Java Source File HelloJavaApplet.java
  • import java.applet.
  • import java.awt.
  • /
  • The HelloJavaApplet class implements
    an applet that
  • simply displays "Hello World!".
  • /
  • public class HelloJavaApplet extends Applet
  • public void paint(Graphics g)
  • // Display "Hello Java Applet!"
  • g.drawString("Hello world!", 50,
    25)

37
b. Create an HTML file to contain the applet.
  • ltHTMLgt
  • ltHEADgt
  • ltTITLEgtA Simple Programlt/TITLEgt
  • lt/HEADgt
  • ltBODYgt
  • Here is the output of my program
  • ltAPPLET CODE"HelloJavaApplet.class"
  • CODEBASE./applets/
  • WIDTH250 HEIGHT25gt
  • The applet does not work!lt/APPLETgt
  • lt/BODYgt
  • lt/HTMLgt
  • Save this code to a file called
    HelloJavaApplet.html.

38
c. Compile and run the program
  • Compile the Source File.
  • Javac HelloJavaApplet.java
  • Run the program
  • With Appletviewer
  • appleviewer HelloWorld
  • With IE explorer, Netscape
  • double click HelloJavaApplet.html
  • demo

39
How java code are structured ?
  • A java application consists of
  • many packages from JRE from 3rd party your
    own
  • A package consists of
  • many classes
  • many subpackages
  • Note importing a package does not mean importing
    its subpackages.
  • A java source file xxx.java is called a
    compilation unit, which may
  • contain multiple java class definitions and
  • may be compiled into multiple java byte code
    (.class ).

40
  • A class has two names
  • simple name
  • fully qualified name package name. SimpleName
  • Ex
  • java.lang.String
  • javax.swing.JButton
  • The package/subpackage/class structure is not
    only logically analogous to directory/subdirector
    y/file in OS file system but in fact they are
    stored physically in file system in this way.
  • Namely, if package p corresponds to a directory d
    then subpackage p.q of p would be stored in
    subdirecty q of d, and class p.A of p would be
    stored in file named A.class or A.java.

41
Ex
  • How does java machine find a class or src x.y.z.A
    in the package x.y.z ?
  • Notes
  • package x.y.z is a subpackage of x.y, which is a
    subpackage of x.
  • we called package x, java, javax etc, top-level
    packages.
  • java find the location of top-level packages from
    a list of directory given by a system variable
    called CLASSPATH.
  • Ex If CLASSPATH .d\my\root Then
  • package x is the dir d\my\root\x or ./x
  • package x.y is the dir d\my\root\x\y or ./x/y
  • package x.y.z is the dir d\my\root\x\y\z or
    ./x/y/z
  • class or src .y.z.A is the file
    d\my\root\x\y\z\A.class or
    d\my\root\x\y\z\A.java or
Write a Comment
User Comments (0)
About PowerShow.com