Full HTML for

Basic foilset Java Tutorial - Spring 1997 Part 1:Introduction to Java Language

Given by Nancy J. McCracken,Geoffrey C. Fox at Peking Tutorial, Web Certificate on Spring-Summer 1997. Foils prepared 18 May 97
Outside Index Summary of Material


Overview including History and alpha versus production issues
Comparison of Java and Javascript
Overall Java Philosophy and Features including security etc.
And in Remaining Parts of Tutorial!!
  • Java Programming Language
  • Object Oriented and Class Structure
  • Exceptions
  • Applet Programming and Threads
  • Abstract Windowing Toolkit
  • Networking and I/O
  • Futures and HPCC Implications

Table of Contents for full HTML of Java Tutorial - Spring 1997 Part 1:Introduction to Java Language

Denote Foils where Image Critical
Denote Foils where HTML is sufficient

1 Java Tutorial - May 1997
Part 1:
Introduction to Java Language
and Applets
http://www.npac.syr.edu/projects/tutorials/Java/

2 Abstract of Java Tutorial
3 Overview and History of Java Development
4 What are Java and HotJava in a NutShell?
5 HotJava Story 1994-1996
6 HotJava Alpha Capabilities
7 HotJava's Future 1996- ?
8 Overview -- Java and the World Wide Web
9 Overview -- What are Java applets in detail?
10 Running a Java Applet
11 History of Java Language and Team
12 History of Java Language and Team (contd)
13 JDK 1.0 -- The Real Java Development Kit!
14 Java Beta --> 1.0 Books -- I
15 Java Beta --> 1.0 Books -- II
16 Java Beta --> 1.0 Books -- III
17 Java vs. JavaScript
18 Comparison of Java and JavaScript -- I
19 Comparison of Java and JavaScript -- II
20 Overall Java Philosophy and Features
21 Some Key Java Features
22 Java Features -- It's Simple and Familiar!
23 Java Features -- It's Object-oriented
24 Java Features -- It's Architecture-Neutral
25 Java Features -- It's Portable
26 Java Features -- It's Somewhat Interpreted
27 Java Features -- It's Distributed
28 Java Features -- It's Robust
29 Java Features -- It's (Hopefully) Secure
30 Java Features -- High Performance
31 Java Features -- It's Multithreaded
32 Java Features -- It's Dynamic
33 Java 1.1 Features

Outside Index Summary of Material



HTML version of Basic Foils prepared 18 May 97

Foil 1 Java Tutorial - May 1997
Part 1:
Introduction to Java Language
and Applets
http://www.npac.syr.edu/projects/tutorials/Java/

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Instructors: Geoffrey Fox
Nancy McCracken
Syracuse University
111 College Place
Syracuse
New York 13244-4100

HTML version of Basic Foils prepared 18 May 97

Foil 2 Abstract of Java Tutorial

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Overview including History and alpha versus production issues
Comparison of Java and Javascript
Overall Java Philosophy and Features including security etc.
Java Programming Language
Object Oriented and Class Structure
Exceptions
Applet Programming and Threads
Abstract Windowing Toolkit
Networking and I/O
Futures and HPCC Implications

HTML version of Basic Foils prepared 18 May 97

Foil 3 Overview and History of Java Development

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index

HTML version of Basic Foils prepared 18 May 97

Foil 4 What are Java and HotJava in a NutShell?

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
What is Java?
  • A simple, object oriented, distributed, interpreted, robust, safe, architechture neutral, portable, high performance, multithreaded, dynamic language.
What is HotJava?
  • Web browser written entirely in Java-based language
  • Toolkit for building Web-aware applications
  • Alpha version received a lot of attention from april to november 1995 but the latest version only came in april 1996 and has not been evaluated in detail by NPAC
    • It is clearly less sophisticated than Netscape 2.0/3.0/4.0 at the moment!

HTML version of Basic Foils prepared 18 May 97

Foil 5 HotJava Story 1994-1996

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
HotJava alpha3 (1994-5)
  • Java-based proof of concept
  • dynamic Web content (applets)
  • Did not have:
    • Real security
    • A Well-defined Applet API
HotJava 1.0 (1996)
  • Completely new implementation
  • Modular architecture
    • Customizable without source code
    • Multi-threaded for higher interactivity
    • State of the art: HTML 2.0+, applets, installable handlers.

HTML version of Basic Foils prepared 18 May 97

Foil 6 HotJava Alpha Capabilities

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Alpha release of Java/Hotjava included:
  • C source code for the Java interpreter (Virtual Machine)
  • Java foundation classes (base language support, I/O, networking, Internet protocols, windowing, graphics, utilities)
  • HotJava browser package used to build HotJava in Java. Includes 'hotjava' class which 'is' HotJava application.
In Short, Alpha Java/HotJava was a complete software release of all system components, free for research and subject to ($125K) licence for business use.

HTML version of Basic Foils prepared 18 May 97

Foil 7 HotJava's Future 1996- ?

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
HotJava toolkit (1996-): class libraries for building web-aware applications i.e. The "Browser" class
  • HTML parsing
  • Document editing, formating, presentation (MVC-based)
  • Web navigation
  • Communications
Natural Use of HotJava is for applications where it is critical to customize User Interface to a greater degree than Netscape allows
Netscape hopes you will use JavaScript to customize a core browser supplied by Netscape

HTML version of Basic Foils prepared 18 May 97

Foil 8 Overview -- Java and the World Wide Web

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Browsers (HotJava, Netscape 2.0/3.0 ..) supporting Java allow arbitrarily sophisticated dynamic multimedia applications inserts called Applets, written in Java, to be embedded in the regular HTML pages and activated on each exposure of a given page.

HTML version of Basic Foils prepared 18 May 97

Foil 9 Overview -- What are Java applets in detail?

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Applet constructs are implemented in terms of a
  • special HTML tag: <APPLET codebase="URL directory path" code="Java class file name" width=".." height=".." >
  • where the URL and class file name points to a chunk of server side software that is to be downloaded and executed at the client side on each presentation of a page containing this applet which executes in window specified in size by width and height in picxels.

HTML version of Basic Foils prepared 18 May 97

Foil 10 Running a Java Applet

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Steps to running a Java Applet:
  • 1. Write an HTML file that refers to the applet using the APPLET tag, described in later pages.
  • 2. If necessary, write the Java code and compile into class files
  • 3. Visit the HTML file with a web browser or with appletviewer.
Using a Browser
  • With a Java-enabled web browser, such as Netscape 2.0/3.0 or HotJava, you run an applet by "surfing" to a web page containing the APPLET tag.
Using appletviewer
  • When doing development, use appletviewer to run applets by specifying the HTML file on the command line:
    • appletviewer stock.html

HTML version of Basic Foils prepared 18 May 97

Foil 11 History of Java Language and Team

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Starts in 1991 by Project Green --- a group in Sun that detaches from the main campus as a semi-autonomous task force focused on operating software for consumer electronic devices such as smart set-top boxes
Gosling (creator of Sun NeWS which had major conceptual impact both on current Java and Telescript models) realizes that C++ is not adequate and initiates development of a new language Oak, later renamed as Java.
A PDA (Personal Digital Assistant -- codename *7) based on Oak/Java ready in 1993. Green Team incorporates as FirstPerson, Inc.
*7 proposal to Time-Warner rejected in 1993. 3DO deal falls through in 1994. FirstPerson, Inc. dissolves.
Small group (~30 people, now Java Team) continues development and decides to adapt Oak as a Web technology.

HTML version of Basic Foils prepared 18 May 97

Foil 12 History of Java Language and Team (contd)

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
An experimental web browser written in Java, called WebRunner and later renamed as HotJava, ready in 1994.
Java/HotJava published in April '95.
Netscape licences Java in May '95 and builds Java into Netscape 2.0 -- This confuses ownership and open-ness of Java
Beta JDK (Java Development Kit) published in summer/fall '95. It is better software but lower functionality than Alpha.
First alpha Java books appear in fall '95 such as a popular overview by SAMS and technical book "Java!" by Tim Ritchey, edited by New Riders.
Dec 4 1995 Business Week cover story on "Software Revolution --- The Web Changes Everything" exposes Java as a breakthrough force in the expanding Web/Internet. Also points out that "Java as a business" is yet to be defined.
In next week, SGI IBM Adobe Macromedia and finally Microsoft adopt/license Java. It appears that Java will be open and should be adopted by open Web community

HTML version of Basic Foils prepared 18 May 97

Foil 13 JDK 1.0 -- The Real Java Development Kit!

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Version 1.0 of JDK released January 96 by JavaSoft
1.0 JDK should be the Internet standard and so compatible with ongoing Java implementations by all licensees, most notably Netscape. Beta/1.0 JDK includes:
  • Java Compiler (.java to .class) for Sun Solaris and Windows NT/95 avaliable as .class itself (Javac written in Java) but no source
  • Java source for the foundation classes (modified and incompatible with alpha)
  • appletviewer to run/preview applets
  • tools for converting alpha applets to beta applets.
  • Source code for the interpreter
Java 1.1 in Spring 97 has yet more improvements

HTML version of Basic Foils prepared 18 May 97

Foil 14 Java Beta --> 1.0 Books -- I

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Hooked on Java, by Java developers Arthur van Hoff, Sami Shaio, Orca Starbuck, Addison-Wesley, is the (first) serious (but still rather high-level) book on beta Java. It contains example applets, but not much on programming.
Teach Yourself Java in 21 Days, by Laura Lemay and Charles L. Perkins, Sams.net Publishing, is a "how-to" book at the intermediate programming level. It concentrates on applets and windowing more than the object-oriented part of the language.
Java in a Nutshell, by David Flanagan, is the language reference book in the familiar O'Reilly series.

HTML version of Basic Foils prepared 18 May 97

Foil 15 Java Beta --> 1.0 Books -- II

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
The Java Programming Language, by Ken Arnold and James Gosling, Addison-Wesley, May 1996, has lots of details on the language basics for intermediate and advanced programmers. It covers threads and i/o packages, but not applets or windowing packages.
  • All serious computer scientists should read to understand fundamentals
Java Primer Plus, supercharging Web applications with the Java programming language, by Paul M. Tyma, Gabriel Torok, and Troy Downing, Sams.net, doesn't assume a lot of programming background, has chatty explanations and still covers lots of programming detail.
Java, How to Program, by Deitel and Deitel, Prentice-Hall, starts with beginning programming concepts and progresses rapidly through Java language. It has the most programming exercises.

HTML version of Basic Foils prepared 18 May 97

Foil 16 Java Beta --> 1.0 Books -- III

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
There are five books in the Java Series from SunSoft Press, Prentice-Hall.
  • instant Java*, by John A. Pew, contains multimedia and animation applets for HTML authors. This is not a programming book.
  • Java by example, by Jerry R. Jackson and Alan L. McClellan, covers all key features with examples, but not as much detail about the language.
  • just Java, by Peter van der Linden, for intermediate programmers, gives good explanations of key features without going into detail.
  • core Java, by Gary Cornell and Cay S. Horstmann, offers detailed coverage of the language and packages for advanced programmers.
  • graphic Java, by Gary McClellan, gives more details on windowing and user interface and includes new classes (not in originial Java release) for such things as "rubberbanding".
* this title is great, but what happened to "express Java", "Percolating through Java", and "Java for Drips"?

HTML version of Basic Foils prepared 18 May 97

Foil 17 Java vs. JavaScript

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index

HTML version of Basic Foils prepared 18 May 97

Foil 18 Comparison of Java and JavaScript -- I

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Netscape renames Livescript as Javascript and this is an interesting variant of Java which is fully interpreted (code can be included directly in HTML file)-- use for overall customization of client
Use Java for detailed programming and JavaScript for overall integration of client interface and system
JavaScript: Interpreted by client and NOT compiled
Java: Compiled on Server before execution on client
  • Note both are reasonably "pure" C/C++ like languages and do NOT have useful sh/awk text and system enhancements of Perl(5)
JavaScript: Object based -- no classes or inheritance -- built in extensible objects
Java: Object-oriented. Programs consist of object classes with inheritance

HTML version of Basic Foils prepared 18 May 97

Foil 19 Comparison of Java and JavaScript -- II

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
JavaScript: Integrated with HTML as embedded ascii but of course HTML looks rather irrelevant at times!
Java: Applets distinct from HTML but invoked from HTML Pages
JavaScript: do not declare variables' datatypes -- Loose typing
Java: MUST declare variables' datatypes -- Strong typing
JavaScript -- Dynamic Binding -- object references computed at runtime
Java -- Static Binding -- object references must exist at compile time
Java and JavaScript are secure and cannot write to disk
JavaScript has most user interface features of Java (such as buttons and frames), except not mouse interactions like "drag and drop".

HTML version of Basic Foils prepared 18 May 97

Foil 20 Overall Java Philosophy and Features

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index

HTML version of Basic Foils prepared 18 May 97

Foil 21 Some Key Java Features

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Document The Java: A White Paper by Sun Microsystems -- October 1995 draft by James Gosling and Henry McGilton -- enumerates the following main features of Java:
Simple and Familiar
Object-oriented
Architecture-neutral
Portable
Somewhat Interpreted
Distributed
Robust
Secure
High performance
Multi Threaded
Dynamic

HTML version of Basic Foils prepared 18 May 97

Foil 22 Java Features -- It's Simple and Familiar!

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Java omits several rarely used, poorly understood and confusing features of C++ including operator overloading, multiple inheritance, pointers and automatic type coercions.
It adds automatic garbage collection which makes dynamic programming easier in Java than in C or C++.
  • No more mallocs!
It also adds 'Interface' construct, similar to Objective C concept, which often compensates for the lack of multiple inheritance by allowing method calling syntax to be "inherited".
The resulting language is familiar as it looks like C++ but is simpler and hence easier to program in.
It also results in a much smaller kernel which is suitable for planned Java ports to consumer electronic devices. Base (alpha) interpreter is ~40Kb, libraries and threads add additional 175Kb.

HTML version of Basic Foils prepared 18 May 97

Foil 23 Java Features -- It's Object-oriented

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Java model can be viewed as a C++ subset, with some dynamic elements inherited from Objective-C (method overloading, garbage collection).
Structures, Unions and Functions are absorbed into data and methods of Java classes -- Java is Simple!
The strength of Java object-oriented model is not is sophistication but in simplicity and the extensive class library associated with the system (some 250 public classes were released in both alpha and beta).
Java class plays also a role of a communication atom in the Web embedding model. Applet classes identify themselves by names in the HTML applet tag. Applet downloads other classes, present in the applet source. Hence, the Java class names play the role of addressing mode for the distributed Java code database.

HTML version of Basic Foils prepared 18 May 97

Foil 24 Java Features -- It's Architecture-Neutral

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
C/C++ programming in a heterogeneous network environment requires use and compatibility across several vendor platforms and the corresponding compilers. This problem is solved in Java by designing platform-independent binary representation called Java bytecode (or opcode).
Java compiler (written in Java and platform-independent) reads Java source and generates Java bytecode. These bytecodes are shipped to client machines upon browser requests.
Each client machine must run Java interpreter which performs runtime execution of Java bytecodes. Java interpreter is written in POSIX compliant ANSI C and needs to be ported to and conventionally compiled (once) on each individual platform.
Once the interpreter is ported, application developers don't need to worry at all about platform specificity and differences between native compilers.

HTML version of Basic Foils prepared 18 May 97

Foil 25 Java Features -- It's Portable

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Java language offers a uniform abstract (virtual) machine model which is identical for all platforms.
SUN owns the Java Virtual Machine (see online report) -- it is universal while classes can be added by any user
Unlike in C/C++ where various integers match the architecture of a physical machine at hand, Java byte, char short, int and long are always of the same size, equal to 8, 16, 16(unicode), 32 and 64 bits, respectively.
  • No header files, preprocessors,#define etc.
  • floating point is always IEEE 754
Differences between vendor specific windowing environments (X Windows, MS Windows, Macintosh) are removed in terms of the Abstract Windowing Toolkit (AWT) metaphor.
AWT is given by ~60 Java classes (alpha) which offer a universal GUI programming model, portable between UNIX, PC and Mac, and translated automatically to native windowing systems on individual platforms by Java interpreters.

HTML version of Basic Foils prepared 18 May 97

Foil 26 Java Features -- It's Somewhat Interpreted

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Java represents a compromise between fully compiled (like C/C++) and fully interpreted (like Smalltalk or Perl) models.
Java "compiler" produces a binary bytecode output which is portable and much smaller than the real binary for a specific machine (Typical bytecode size is of order of the original source code, within a factor of 2).
Java "interpreter" executes this bytecode and is therefore less dynamic than e.g. Perl interpreter (which performs an equivalent bytecode construction internally and on-the-fly when reading the program source).
In general, the compilation process is: a) time consuming and b) platform specific. Hence, interpreters are built and used to facilitate a) rapid prototyping and/or b) portability. Java model is focused on platform independence but the development throughput is also reasonable since the Java compiler is fast and generates compact bytecode output.

HTML version of Basic Foils prepared 18 May 97

Foil 27 Java Features -- It's Distributed

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Popular TCP/IP based protocols such as FTP or HTTP are supported in terms of network protocol classes. This facilitates various forms of distributed processing. New protocols (e.g. PVM etc.) can added and dynamically installed.
Distributed computing model of Java is mainly client-server, with Java compiler preparing the opcodes at the server side, and Java interpreter executing it at the client side.
One can expect more dynamic uses of Java with Java threads on both Server and Client side communicating with each other. This is illustrated by Java based Collaboratory developed by Vishal Mehra as NPAC/Ece Master's Thesis

HTML version of Basic Foils prepared 18 May 97

Foil 28 Java Features -- It's Robust

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Java enforces compiler-time type checking and eliminates this way some error prone constructs of C/C++.
Pointer arithmetic is fully eliminated which allows e.g. for runtime checking of array subscripts and enforces security of the Java model.
Explicit declarations are always required, i.e. C-style implicit declarations are abandoned. This allows the Java complier to perform early error detection.
Rapid prototyping in Java is less natural than in JavaScript,Lisp, Tcl, Smalltalk or Perl, but the software quality assurance of Java is higher than in these more dynamic and 'forgiving' languages.

HTML version of Basic Foils prepared 18 May 97

Foil 29 Java Features -- It's (Hopefully) Secure

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Java bytecodes are shipped across the network and executed on client machines. Security is therefore a critical issue and strongly enforced in Java.
  • Java contains its own networking classes which are designed to be secure
Modifications of the C++ model such as eliminating pointer arithmetic and coercion were dictated mainly by the security requirements.
Most viruses are based on acquiring access to private/protected sectors of computer memory which is impossible in Java.
Java opcodes are executed at the client side by Java interpreter which operates exclusively on the virtual memory. Hence, unless there are security bugs in the Java interpreter itself, the model is safe and users cannot create security holes by incorrectly or maliciously written applets.
The bytecodes sent across network are verified at the client which prevents evil/corrupted classes from causing problems

HTML version of Basic Foils prepared 18 May 97

Foil 30 Java Features -- High Performance

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Java interpreter performs on-the-fly runtime execution of the Java bytecodes which can result in a satisfactory performance.
There are 3 ways of executing Java
Interpreter through a Browser -- Java approximately 50 times slower than C
"Just-in-time" (JIT) Interpreter on a browser -- Java approximately 4 times slower than C
  • This is essentially an on the fly compiler as a JIT Interpreter saves code for repeated sections to provide compiled (without complex optimizations) code efficiency after first execution
Compiler for generating native machine code out of Java or Java bytecodes, viewed as intermediate compiler form
  • One expects that native compilers will be comparable to C or Fortran in performance
  • As Java has no pointers, compiled code should be faster in many cases than C or C++

HTML version of Basic Foils prepared 18 May 97

Foil 31 Java Features -- It's Multithreaded

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Java model offers preemptive multithreading, implemented in terms of the Thread class. Thread methods offer a set of synchronization primitives based on monitor and conditional variable paradigm by C.A.R. Hoare. Java threads inherit some features from the pioneering Cedar/Mesa System by Xerox Park that gave birth to Macintosh and object-oriented programming.
A typical use of Java multithreading in applet programming is to have several independent but related simulations (e.g. various sorting algorithms), running concurrently in an applet window. Multithreading is also used internally by the browser to handle multiple document dynamics.
Another interesting application domain are multi-HotJava environments to come such as collaboratory or gaming.
Java threads don't have built-in point-to-point communication primitives. Various thread communication environments can be provided by coupling the thread and network protocol objects.

HTML version of Basic Foils prepared 18 May 97

Foil 32 Java Features -- It's Dynamic

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Java model is more dynamic than C++ and closer to Smalltalk or Perl.
Subclasses don't need to to be recompiled after superclass implementation is updated.
C++ has "fragile superclass" problem where must recompile children if change anything (method/instance variable) in a superclass or referenced class -- Java resolves references at runtime and avoids this.
Classes have runtime representation (implemented in terms of the Class class) which allows one to look up type of a given object instance at runtime (in C cannot know if pointer is to integer or browser!)

HTML version of Basic Foils prepared 18 May 97

Foil 33 Java 1.1 Features

From Java Tutorial - Spring 1997 Part 1:Introduction to Java Language Peking Tutorial, Web Certificate -- Spring-Summer 1997. *
Full HTML Index
Several new capabilities in the area of abstract windowing toolkit improvement and new model for event handling
Has the "Java Database Connectivity" (JDBC) built in allowing access to general databases
Improved Security
RMI or remote method invocation supports standard client server interactions
Allows objects to be transmitted in a standard way (object serialization)

© Northeast Parallel Architectures Center, Syracuse University, npac@npac.syr.edu

If you have any comments about this server, send e-mail to webmaster@npac.syr.edu.

Page produced by wwwfoil on Thu Jan 8 1998