Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Programming Transparency No. 1-1 Introduction to Java Programming Cheng-Chia Chen September 2003.

Similar presentations


Presentation on theme: "Java Programming Transparency No. 1-1 Introduction to Java Programming Cheng-Chia Chen September 2003."— Presentation transcript:

1 Java Programming Transparency No. 1-1 Introduction to Java Programming Cheng-Chia Chen September 2003

2 Java Programming Transparency No. 1-2 Course web page

3 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/ …

4 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%)

5 Java Programming Transparency No. 1-5 Lecture 1. Introduction Cheng-Chia Chen

6 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 internet 1.via Java applet 2.via Java Web Start

7 Java Programming Transparency No. 1-7 What is Java? Java is  a programming language, defined in The Java language specification (v1,v2,v3)The Java language specification  a virtual machine, Defined in The java virtual machine (v1, v2)The java virtual machine  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,…

8 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 smartcards J2ME

9 Java Programming Transparency No. 1-9

10 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.

11 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.

12 Java Programming Transparency No. 1-12 Technologies included in J2EE  Enterprise JavaBeans,  JavaServer Pages, JavaServer Faces  servlets,  the Java Naming and Directory Interface TM (JNDI),  the Java Transaction API (JTA),  CORBA,  The JDBC data access API.  Java Message Queue (JMQ)  …

13 Java Programming Transparency No. 1-13 What is J2ME ?  1.What is the Java 2 Platform, Micro Edition (J2ME)?J2ME The Java TM 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?)

14 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

15 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

16 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

17 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.

18 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 performance increase in compilation and runtime execution

19 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

20 Java Programming Transparency No. 1-20 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.

21 Java Programming Transparency No. 1-21 Java is Architecture-neutral  Byte-codes are architecture neutral  Performance suffers by using bytecodes

22 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)

23 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 compiler.  Can use native code for mission-critical performance sections of code JNI: Java Native Interface Sacrifice portability.

24 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

25 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 {… }

26 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!"); }

27 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

28 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, …

29 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 Applet a. Create a Java Source File b. Create related HTML files c. Compile and run the Source File

30 Java Programming Transparency No. 1-30 Required Softwares To write your first program, you will need: 1. The Java TM 2 Platform, Standard Edition. 2. A text editor. Ex:  NotePad,  Ultraedit,  EditPlus2

31 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

32 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!"); }

33 Java Programming Transparency No. 1-33

34 Java Programming Transparency No. 1-34 JWS Architecture

35 Java Programming Transparency No. 1-35 (web page) d. Invoke Java application remotely via JWS <jnlp spec="1.0" codebase="http://61.70.136.131/courses/java/java2003f all/jws/" href="helloJWS.jnlp"> Hello Java Web Start Cheng-Chia Chen A simpe Demo of Java Web Start. HelloJWS.jar … Start HelloJWS … example

36 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 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 LASSPATH or –cp/–classpath options 5. Start using the Java 2 SDK tools! java, javac, javadoc, jdb, javap,…

37 Java Programming Transparency No. 1-37 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); }

38 Java Programming Transparency No. 1-38 b. Create an HTML file to contain the applet. A Simple Program Here is the output of my program: <APPLET CODE="HelloJavaApplet.class" CODEBASE=“./applets/” WIDTH=250 HEIGHT=25> The applet does not work!  Save this code to a file called HelloJavaApplet.html.

39 Java Programming Transparency No. 1-39 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 demo


Download ppt "Java Programming Transparency No. 1-1 Introduction to Java Programming Cheng-Chia Chen September 2003."

Similar presentations


Ads by Google