java programming transparency no. 1-1 introduction to java programming cheng-chia chen september...
Post on 19-Dec-2015
253 views
TRANSCRIPT
Java Programming
Transparency No. 1-1
Introduction to Java Programming
Cheng-Chia Chen
September 2003
Java Programming
Transparency No. 1-3
Course information
Textbook: None Main References:
The Java Tutorial From Sun Java 2 SDK, Standard Edition Version 1.4 Documentation
) The Java Language Specification Java in a Nutshell 3rd edition,David Flanagan,Oreilly, 1999.
References and Documentations: The Java Virtual Machine http://developer.java.sun.com/developer/onlineTraining/ …
Java Programming
Transparency No. 1-4
Course information (cont’d)
Some Development Tools and IDEs: Java 2 SDK Version 1.4.2 (free) BeanShell (free) Eclipse (free open source IDE) NetBeans (free open source Java IDE) Borland Builder Foundation Version 9 (free) JEditor JPad …
Grading: 4~5 Programming Exercises (40 %) A Java Application/System Study report (15~20 %) Final Examination (30%) Class Participation (10~15%)
Java Programming
Transparency No. 1-6
Contents
1. What is Java?
2. Features of Java
3. History of Java
4. Develop first Java program
5. Deploy java programs through the internet1. via Java applet
2. via Java Web Start
Java Programming
Transparency No. 1-7
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 (jdk): Jdk v1.0~1.02: 8 packages/212 classes jdk v1.1~1.18: 23 packages/504 classes Java 2 (j2se): SDK v1.2~1.22, v1.30: 59 pkg/1520 classes now v1.4.2 Enterprise edition(j2ee): V1.2, V1.3.1, V1.4beta (Sep,2003) Micro edition (j2me): v1.0,CLDC1.1,MIDP2.0,…
Java Programming
Transparency No. 1-8
Java 2 Platform editions and their target markets
servers & enterprise coputers
Desktop & personal computers
High-end consumer devices
Low-end devices
smartcardsJ2ME
Java Programming
Transparency No. 1-10
What is J2EE ?
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.
Java Programming
Transparency No. 1-11
Benefits of J2EE
1. A unified platform for building, deploying and managing enterprise-class software.
2. Allow enterprise-class application the ability to run anywhere.
3. A platform with a complete range of readily available enterprise-class services.
4. A single easy-to-learn blueprint programming model for J2EE.
5. A platform that is built upon and leverages existing IT investments and guarantees that enterprise-class software will work on multiple platforms.
Java Programming
Transparency No. 1-12
Technologies included in J2EE
Enterprise JavaBeans, JavaServer Pages, JavaServer Faces servlets, the Java Naming and Directory InterfaceTM (JNDI), the Java Transaction API (JTA), CORBA, The JDBC data access API. Java Message Queue (JMQ) …
Java Programming
Transparency No. 1-13
What is J2ME ?
1.What is the Java 2 Platform, Micro Edition (J2ME)? The JavaTM 2 Platform, Micro Edition is the edition of the J
ava 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?)
Java Programming
Transparency No. 1-14
Features of the java language:
Java is simple object-oriented distributed interpreted robust secure architecture-neutral portable high performance multithreaded dynamic
Java Programming
Transparency No. 1-15
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 (Programmer controlled) operator overloading
Features included as part of base language: Threads Exception handling
Java Programming
Transparency No. 1-16
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
Java Programming
Transparency No. 1-17
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.
Java Programming
Transparency No. 1-18
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 performa
nce increase in compilation and runtime execution
Java Programming
Transparency No. 1-19
Java is Robust
Strongly-typed language (cf Smalltalk and VisualBasic)
Compile-time and runtime checking No pointer arithmetic Exception handling Automatic memory management
Java Programming
Transparency No. 1-20
Java is secure
Designed with security in mind. Allow users to download untrusted code over a net
work 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 wit
h [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.
Java Programming
Transparency No. 1-21
Java is Architecture-neutral
Byte-codes are architecture neutral
Performance suffers by using bytecodes
Java Programming
Transparency No. 1-22
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)
Java Programming
Transparency No. 1-23
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 Sun’s Java HotSpot is Newest high performace JIT compil
er.
Can use native code for mission-critical performance sections of code JNI: Java Native Interface Sacrifice portability.
Java Programming
Transparency No. 1-24
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
Java Programming
Transparency No. 1-25
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 {… }
Java Programming
Transparency No. 1-26
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!");
}
}
Java Programming
Transparency No. 1-27
History 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
Java Programming
Transparency No. 1-28
History of Java
1997 … 2/18: Complete JDK1.1 released 3/28: JDK1.1.1, 5/28: JDK1.1.2, 7/2: JDK1.1.3,…
1998: 9/28: JDK1.1.7, 12/8: J2SE
1999: 6/? J2ME 12/7 J2EE
2001 J2SE 1.4.0
Now(2003 Sep.): j2se1.4.2, j2ee 1.3.1,1.4 beta, …
Java Programming
Transparency No. 1-29
Develop your first Java Program and applet
1. Required softwares
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 Appleta. Create a Java Source File
b. Create related HTML files
c. Compile and run the Source File
Java Programming
Transparency No. 1-30
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
Java Programming
Transparency No. 1-31
2. Creating Your First Application
The first program, HelloWorldApp, will simply display : “Hello World!".
Steps: a. Create a Java source file. > Notepad HelloWorldApp.java b. Compile the source file into a bytecode file. > javac HelloWorldApp.java c. Run the program contained in the bytecode file. >java HelloWorldApp d. invoke the program remotely via Java Web Start.
d.1 :> jar cf HelloJWS.jar HelloWorlApp.class d.2 : prepare HelloJWS.jnlp d.3 : prepare web page to hyperlink HelloJWS.jnlp
Java Programming
Transparency No. 1-32
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!");
}
}
Java Programming
Transparency No. 1-35
(web page)
d. Invoke Java application remotely via JWS
<?xml version="1.0" encoding="utf-8"?><jnlp spec="1.0" codebase="http://61.70.136.131/courses/java/java2003fall/jws/" href="helloJWS.jnlp"> <information> <title>Hello Java Web Start</title> <vendor>Cheng-Chia Chen</vendor> <homepage href="index.html"/> <description>A simpe Demo of Java Web Start.</description> <offline-allowed/> </information> <resources> <j2se version="1.4+"/> <jar href="helloJWS.jar"/> </resources> <application-desc main-class="HelloJWS"/> </jnlp>
HelloJWS.jar
…<A href=“helloJWS.jnlp”>Start HelloJWS </A>…
example
Java Programming
Transparency No. 1-36
Java 2 SDK Installation Instructions (for WIN32)
1. Download java 2 SDK standard edition
2. Run the Java 2 SDK executable (*.exe). determine where to install j2se. (ex: c:\java\j2se\1.4) > set JAVA_HOME= c:\java\j2se\1.4
3. Update the PATH variable so that you can type ‘java’ instead of ‘c:\java\j2se\1.4\bin\java’ to invoke javatools. > path=%JAVA_HOME%\bin;%PATH%
4. Check the CLASSPATH variable Used by java tools to determine where to find your personal (nonsystem) java class f
iles Types of java byte codes (class files):
System : java tools know where to find them.Extensions: put in %JAVA_HOME%\jre\lib\extPersonal: via LASSPATH or –cp/–classpath options
5. Start using the Java 2 SDK tools! java, javac, javadoc, jdb, javap,…
Java Programming
Transparency No. 1-37
3. Creating Your First Applet
a. Create a Java Source File: HelloJavaApplet.javaimport 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); } }
Java Programming
Transparency No. 1-38
b. Create an HTML file to contain the applet.
<HTML>
<HEAD>
<TITLE>A Simple Program</TITLE>
</HEAD>
<BODY>
Here is the output of my program:
<APPLET CODE="HelloJavaApplet.class"
CODEBASE=“./applets/”
WIDTH=250 HEIGHT=25>
The applet does not work!</APPLET>
</BODY>
</HTML> Save this code to a file called HelloJavaApplet.html.