1 / 37

Introduction to Java Programming

Introduction to Java Programming. Cheng-Chia Chen September 2002. Course web page. Course information. Textbook: None Main References: The Java Tutorial From Sun Java 2 SDK, Standard Edition Version 1.4 Documentation ) The Java Language Specification

gwen
Download Presentation

Introduction to Java Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Java Programming Cheng-Chia Chen September 2002

  2. Course web page

  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: • Java Foundation class in a Nutshell, by David Flanagan, Oreilly, 1999. • The Java Virtual Machine • http://developer.java.sun.com/developer/onlineTraining/ • …

  4. Course information (cont’d) • Some Development Tools and IDEs: • Java 2 SDK Version 1.4 (free) • BeanShell (free) • IBM VisualAge for java (free for entry edition) • Kawa IDE (30 days trial) • Forte For Java (free for CE) • Borland Builder Foundation Version 5 (free) • JPad (30 days trial) • … • Grading: • 4~5 Programming Exercises (40 %) • A Java Application/System Study report (15~20 %) • Final Examination (30%) • Class Participation (10~15%)

  5. Lecture 1. Introduction Cheng-Chia Chen

  6. Contents • What Is Java? • Features of Java • History of Java • Develop first Java program • Develop first Java applet

  7. What is Java? Java is • a programming langugae, • 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.1 • Enterprise edition(j2ee): V1.2, V1.3.1 (Sep,2002) • Micro edition (j2me): v1.0

  8. servers & enterprise coputers Desktop & personal computers High-end consumer devices Low-end devices J2ME smartcards Java 2 Platform editions and their target markets

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

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

  11. Technologies included in J2EE • Enterprise JavaBeans, • JavaServer Pages, • servlets, • the Java Naming and Directory InterfaceTM (JNDI), • the Java Transaction API (JTA), • CORBA, • The JDBC data access API. • Java Message Queue (JMQ)

  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 • (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) • 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 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 • 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.

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

  27. 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(2002 Sep.): j2se1.4.1, j2ee

  28. 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 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: • Create a Java source file. • > Notepad HelloWorldApp.java • Compile the source file into a bytecode file. • > javac HelloWorldApp.java • Run the program contained in the bytecode file. • >java HelloWorldApp

  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. 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.3) • > set JAVA_HOME= c:\java\j2se\1.3 3. Update the PATH variable • so that you can type ‘java’ instead of ‘c:\java\j2se\1.3\bin\java’ to invoke javatools. • > path=%JAVA_HOME%\bin;%PATH% 4. Check the CLASSPATH variable • Used by javatools to determine where to find your personal (nonsystem) java class files • Types of java bytecodes (class files): • System : javatools 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,…

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

  34. 2. Create an HTML file to cntain the applet. <HTML> <HEAD> <TITLE>A Simple Program</TITLE> </HEAD> <BODY> Here is the output of my program: <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> The applet does not work!</APPLET> </BODY> </HTML> • Save this code to a file called Hello.html.

  35. 3. Compile and run the program • Compile the Source File. • Javac HelloWorld.java • Run the program: • With Appletviewer: • appleviewer HelloWorld • With IE explorer: • With Netscape:

More Related