Home : What's New
What's New
Course Map
     About JavaTech
     Codes List
     Topic Index
     Course Guide
     What's New

May 22, 2008

  1. Prompted by a reader, a note was added to the Bitwise Operations table in Chapter 2: Java Operators about the fact that such operations on byte and short types may give unexpected results.
  2. Prompted by a reader, I fixed typos in the code for the "edward" example in the Multi-Dimensional Arrays section of the Chapter 4: More about Arrays page.


November 3, 2006

  1. Added links to the site Java Swing Tutorial | Swing Examples - Hemanth Balaji on the Resources page and in several sections dealing with Swing.
  2. With regard to port handling in Chapter 23, the page Installing Java Tools - PracticalEmbeddedJava.com offers good advice on installing javaxcomm.
  3. On Chapter 6: Java: User Interface (UI) Layout, matched the code listing for InputsPanel.java with that in the actual code file. (Via reader feedback)
  4. On Chapter 6: Java: Drawing, matched the code listing for for DrawingPanel.java with that in the actual code file. (Via reader feedback)


July 28, 2006

  1. A reader spotted an error in the example code for ".String.split ()" on the botton of the Java: Chapter 10: String Tools page. In the code
        String[] starwords = str2.split ("\\*");
    the two backslashes are needed. Otherwise, it is an improper use of the * wildcard in regular expressions and an error message will result. The backslashes cause the * to be treated as a normal character and the split operation uses it as the delimiter in the string.

May 24, 2006

  1. Added two entries to the Book Errata page for p.65 and p. 107.
  2. Chapter 11: Pixel Handling: for the demo program AnimationApplet.java, the pixel handling code in the newFrame() method code was changed from

      fPixels[index++] = (255 << alpha) | (red << 16) | (green << 8) | blue;
      fPixels[index++] = ( alpha << 24) | (red << 16) | (green << 8) | blue;

  3. Chapther 11: Supplements: Pixel Handling, same fix to AnimationWritableRasterApplet.java.

May 9, 2006

  1. Sample questions for the final exam are available here.

April 30, 2006

  1. After a reader pointed out an error on this page - Java: Chapter 10: Concurrency Utilities with regard to the shutdown () method (incorrectly given as an Executor class method), that part was rewritten.

March 26, 2006

  1. A reader pointed out on this page - Java: Chapter 10: String Tools, that the class java.lang.StringBuffer had been incorrectly written as java.util.StringBuffer.

March 20, 2006

  1. Added link to www.freejavaguide.com tutorial site in Resources page
  2. Added link to the report by J.P.Lewis and Ulrich Neumann on list of Chapter 10: Java Benchmarks references.

March 8, 2006

  1. Responding to feedback from a reader, on the Code Index page several source code links that were mistakenly linked to the ".class" file were fixed to link to the ".java" file.
  2. Also added links to resources, i.e. any images, text files, etc., that were used in the demonstration programs.
  3. Added Visualization of Brownian Motion to the Physics Applets list in the Resources page.

Feb 4, 2006

  1. Part 1: Tech : Chapter 9: Histogram I/O - added missing link to HstFilter class. Also, for this page. (Fixes via feedback from readers.)
  2. Part 1: Supplements: Chapter 11: Rescaling... - Fixed typo and a missing item in code example. (Fixes via feedback from readers.)

December 16, 2005

  1. Part 1: Physics : Chapter 12 - added a list of links to and descriptions of math and physics related code libraries. Created a demo using the JAIDA software packages that provide plotting, histogramming, and fitting tools.
  2. Part 1: Tech : Chapter 12 - added a list of links to and descriptions of tech related code libraries, including charting.

November 8, 2005

  1. Part 1: Physics : Chapter 10 - demonstration of physics experiment simulation/analysis software with the simple falling mass example.
  2. Part 2: Physics : Chapter 11 - expand on the falling mass software to include calibration of instrument effects and systematic errors.

Oct. 25, 2005

  1. For Part 1: Physics : Chapters 5-9, the program names and code were updated to conform to the coding conventions discussed in Chapter 5: Java.
  2. Part 2: Chapter 15 - some minor revisions to the comments in the code for the client/server simulation demo were updated.

Oct. 18, 2005

  1. For Part 2: Chapters 16 - 21 and Part 3: Chapter 22, resource lists were expanded with more links to relevant web articles and websites.
  2. Chapter 24: More Javelin Demos - documentation and Java class files added for two student projects using the Javelin processor.

Oct. 15, 2005

  1. For Part 2: Chapters 18, 19, and 20 plus Part 3: Chapter 22, the code files for the examples discussed in the book are posted. Also, the code listings are displayed in the corresponding chapter web course sections.
  2. The above codes were added to the Code Index page.
  3. For Part 2: Chapters 16-21 and for Part 3: Chapter 22, links to related resources on the web have been posted and will be expanded over time.

Oct. 7, 2005

  1. Added additional material and links for the Java Advance Imaging (JAI) API to Chapter 11: Supplements: JAI.

Oct. 6, 2005

  1. Added additional material and also updated the discussions of the JVM in
    1. Chapter 1: Supplements: JVM
    2. Chapter 2: Supplements: JVM Instruction Set 1
    3. Chapter 3: Supplements: Objects and Classes in the JVM
    4. Chapter 4: Supplements: Class Loader
    5. Chapter 4: Supplements: Class File Verifier
    6. Chapter 5: Supplements: JVM Instruction Set 2
    7. Chapter 5: Supplements: Processing in the JVM
  2. Updated the discussion of the new concurrency tools for Java 5.0:
    1. Chapter 8: Supplements: More about concurrency
    2. Chapter 10: Java : J2SE5.0: New Concurrency Utilities

Oct. 1, 2005

  1. Added a discussion of piped threads to the Chapter 9 Supplements section. Includes a demonstration application program.

Sept 29, 2005

  1. Chapter 7: Supplements: Enhanced UI: Part 1 and Part 2 provide examples of techniques for enhancing the appearance and functionality of GUIs.

Sept 22, 2005

  1. Updated the Program and Source Code list to include all programs currently on the website.
  2. In the course of doing this, lots of bad links and miscellaneous typos and mistakes were fixed.
  3. Code directories were reorganized according to chapters rather than type of program.
  4. A number of programs still need to be added to the website, e.g. much of Part 2 and Chapter 22. After these missing programs are added, a zip file with all programs and source files will be made available for downloading.

August 19, 2005

  1. Added an overview of the RandomAccessFile class in Chapter 9: Supplements: RandomAccessFile.

August 18, 2005

  1. Added an overview of NIO classes and techniques in Chapter 9: Supplements: NIO.
  2. Chapter 9: Supplements: More NIO discusses how to use ByteBuffer as an alternative technique for treating bytes in an array as different primitive types. Modified code for the example in Chapter 9: Tech: Histogram I/O is provided.

July 7, 2005

  1. Chapter 9: Supplements: ZIP/GZIP orivudes a description of the file compression/decompression tools available in java.util.zip. A demonstration application program is included.

June 25, 2005

  1. A set of pages and demo programs about fractals was added to the Chapter 11: Tech section.
  2. In Chapter 4: Tech: Improved Complex Number Class the Complex class is presented as shown in the book. A Complex_std class, which is the same except that the variable names are in the coding convention style discussed in Chapter 5, is also linked to.
  3. In Chapter 6: Tech: Plot Demo the comments in PlotPanel.java were expanded and clarified to make the class more understanable.

June 14, 2005

  1. Updated the discussion of complex number classes in Chapter 3: Tech: A Complex Number.
  2. In Chapter 4: Tech: Improved Complex Number Class an revised Complex class is presented.
  3. The new page Chapter 5: Tech: Immutable Complex Number Class is added. It describes the complex number class ComplexImm in which the real and imaginary values cannot be altered once an instance is created.

May 16, 2005

  1. Our editors at Cambridge Univ. Press thought that "Introduction to ...." rather than "Topics in ..." was a better title for our book, so we have updated the name of the companion web course here.

Apri1 27, 2005

  1. Added a Course Guide for students at the Royal Institute of Technology who are taking courses based on this material.

January 31, 2005

  1. Chapter 5: Tech: System.out.printf() page updated to include new links and some editing.
  2. Chapter 5: Tech: Core Java Format Class page updated to note that the Format class from Core Java has been made obsolete by java.text.Formater and System.out.printf().

December 13, 2004

  1. Chapter 24 is revised and updated with modified demo codes, links, new pages, and text.
    1. Expanded Real-time computing discussion
    2. Java Boards section
    3. SNAP Web Server example is added

December 13, 2004

  1. Chapter 23 is revised and updated with modified demo codes.

December 12, 2004

  1. Chapter 15 is revised and updated with modified demo codes.

December 10, 2004

  1. Chapter 14 is revised and updated with modified demo codes.

December 9, 2004

  1. Extensive revision of Chapter 13 along with new demos.

December 8, 2004

  1. Extensive revision and expansion of the Chapter 12 Java section along with new demos.

December 5, 2004

  1. Extensive revision and expansion of the Chapter 11 Java and Supplements tracks:
    1. Java track is reorganized and has revised demo programs.
    2. A program to demonstrate the alpha transparency factor is added.
    3. Supplement track has a a lengthy overview of Java 2D Imaging tools and techniques with pages and demos on
      1. BufferedImage class
      2. Pixel handling with BufferedImage
      3. Flitering images - includes pages and demos on 6 types of filters.

November 19, 2004

  1. Extensive revision and expansion of Chapter 10 Java. It now includes pages on
    1. Collections Framework
    2. Iterator & ArrayList
    3. Generics - J2SE5.0
    4. Preferences API
    5. Concurrency Utilities - J2SE5.0
    6. Enumerated Type - J2SE5.0
    7. StringBuilder
    8. String.split()
  2. Updating of the Arbitrary Precision and Bit Handling pages in the Chapter 10: Tech section.

November 15, 2004

  1. Extensive revision of Chapter 9 Java
  2. Chapter 9: Java reorganized and expanded
    1. Formatter and Scanner classes discussed for formated input and output, resp.
    2. Discussion of character encoding added. Includes modified demos for Unicode.
    3. Object I/O
    4. Converting primitive types to byte arrays and vice versa.
    5. Discussion of I/O classes as sources, destinations, and filters.
  3. Chapter 9: Tech - revised and updated the demo programs.

November 9, 2004

  1. Extensive revision of Chapter 8 Java including more demonstration programs.
  2. Added a "More Thread Topics" page with brief discussions of thread groups, daemon threads, etc.
  3. Codes in all but Physics track rewritten according to the Coding Conventions.

November 3, 2004

  1. Extensive revision of Chapter 7 Java including more demonstration programs.
  2. Added a second page about BoxLayout, CardLayout, and JTabbedPane..
  3. Codes in all but Physics track rewritten according to the Coding Conventions.

October 30, 2004

  1. Extensive revision of Chapter 6 Java, Supplements, and Tech tracks.
  2. Codes in all but Physics track rewritten according to the Coding Conventions.
  3. Supplement section split between pages giving an intro to AWT and the pages giving an intro to Java2D.
  4. In Tech section, more text description of the plotting classes added.

October 25, 2004

  1. Extensive revision of Chapter 5 Java track.
    1. Added a page on the static import directive added with in J2SE5.0
    2. Added a page on Coding Conventions..
  2. In Chapter 5: Tech added a page on System.out.printf() added in J2SE5.0
  3. In Chapter 5: Supplements added a page on the Pack200 tool.

October 21, 2004

  1. Extensive revision of Chapter 4 Java track.
  2. Added a new demo for inheritance.
  3. Added a summary page about classes and objects.
  4. Added a Supplements page about annotation, which came with Java 5.0

October 20, 2004

  1. Extensive revision of Chapter 3 Java track.
  2. Moved Overloading discussion from Chapter 4 to Chapter 3.
  3. Added an array demo.
  4. Added a discussion and a demo for the Autoboxing/Unboxing capabilities added with J2SE5.0.
  5. In process of updating the Code Listing.

October 15, 2004

  1. Extensive revision of Chapter 2:
    1. Updated materials to be more consistent with the book
    2. Reordered the pages in the Java section.
  2. Updated the floating-point discussions in the Chapter 2: Tech section.

October 13, 2004

  1. Extensive revision of Chapter 1:
    1. New pages giving a Java 5.0 overview in the main Java track plus more details in the Supplements.
    2. Examples of Java in real-world applications in science and technial fields.
    3. Miscellaneous corrections and modifications to the text, and extra links added.
  2. Starter codes cleaned up. (A coding convention discussion will later be added to Chapter 5.)

October 8, 2004

  1. For the past few months we focused on the book manuscript. Now that it has been submitted, we will return to updating and maintaining the websitel. In the course of writing the book, we modified many of the programs here and added a lot of new topics.

    For example, the book discusses the new version of Java just released: J2SE 5.0. This version provides a number of features of particular interest to those in technical computing such as numerical text formatting with the Formatter class and the printf() method in PrintStream(). We will therefore modify the materials here to include these new techniques.

  2. Updated the Course Map, About JavaTech, and the home page.

March 23, 2004

  1. Updated some pages and programs in Chapter 11: Java for images. Will be making more substantial changes to this chapter soon.

March 13, 2004

  1. Part 2: Chapter 15: Server-Clients with Sockets - complete rewrite and new demo programs. Still rough draft but all the basic elements are there.

March 2, 2004

  1. Chapter 8: Physics - completed the page dealing with fitting polynomials to data points. Includes a demo applet.

Feb. 29, 2004

  1. Chapter 12: Java - added a couple of exercises to the Java part of Chapter 12.

Feb. 28, 2004

  1. Chapter 6: Tech - added a new page with a demo that develops a DrawPanel class that allows for instances of DrawFunction subclasses to overlay different types of drawings (points, curves, etc.) on the panel display.
  2. Chapter 6: Physics - changed the data plotting demo to use the DrawPanel class.
  3. Chapter 8: Tech - added a page on displaying histogram entries with points and error bars rather than vertical columns.
  4. Chapter 8: Physics - this whole section is reorganized and now starts with a discussion of least squares fitting to data points.
  5. Chapter 9: Physics - discussion of the analysis software design and a new demo.
  6. Chapter 6- 7 for both the Tech and Physics tracks there are many pages with corrections and updates.

Feb. 1, 2004

  1. Chapter 7: Tech - sections with demos on generating non-uniform random number distributions are completed.
  2. Chapter 7: Physics - sections on generating custom random number distributions are completed.
  3. Chapter 9: Physics - Demonstration of simulation of an experiment is completely revamped and mostly completed.

Jan. 22, 2004

  1. In the Chapter 1: Getting Started page I added some links to the expanded section at java.sun.com on getting started in Java.
  2. In the Chapter 1: Programming Tools page I added a note explaining about the target option in the javac compiler.

Jan. 9, 2004

  1. Chapter 14 rewritten with extra material and new codes.

Dec. 24, 2003

  1. Chapters 12 & 13 updated.

Dec. 18, 2003

  1. Modified Chapter 1: Java : Getting Started to include some book recommendations.
  2. References also updated with some additions and subtractions.

Dec. 15, 2003

  1. Proofed Chapter 3.

Dec. 12, 2003

  1. Proofed Chapter 2.
  2. Chapter 10: String Tools - now discusses String class methods in addition to StringBuffer and StringTokenizer

Dec. 10, 2003

  1. Another round of proofing, starting with Chapter 1.
  2. Chapter 10: Tech - added material on the arbitary precision number classes and on bit handling.
  3. Chapter 11: Supplements - modified and updated the AWT image flicker discussion.

Nov. 4, 2003

  1. Draft version of Chapter 22 including Java port I/O.
  2. Further revisions to Chapter 23.

Nov. 4, 2003

  • Revised draft version of Chapter 23 on Embedded Java.

Nov. 3, 2003

  • Draft version of Chapter 23 on Embedded Java loaded.

Oct. 13, 2003

  1. Created or updated several supplement sections including:
    1. Chapter 3: Garbage Collection
    2. Chapter 3: Classes & Objects in the JVM
    3. Chapter 4: Java Security
    4. Chapter 4: Class File Verification
    5. Chapter 4: Security Manager
    6. Chapter 5: Debugging
    7. Chapter 5: Scope
    8. Chapter 5: JRE

Oct. 9, 2003

  1. Updated the Java section of Chapter 4 with fixes for typos, phrasing, etc.

Oct. 7, 2003

  1. Merged the More Basic & More Advanced supplements into a single "Supplements" section.
  2. Eliminated many bad intra-site links.

Oct. 2, 2003

  1. Chapter 4: Java section has been proofread and some additional material included on some pages.
  2. Chapter 4: Advanced section has expanded material on the ClassLoader and Class class page.

Sept. 30, 2003

  1. First 3 chapters have been cleaned up with a major proof reading and additional discussion material added. Will continue this processs for the other chapters over the next week or so.
  2. Expanded discussion of floating point representation in Java in Chapter 2: Tech: FP.
  3. Garbage Collector discussion added to Chapter 3: Advanced.
  4. Added "Start" to the names of all the starter template programs.

Sept. 4, 2003

  1. Over the past month several updates were made including:
    1. Part II was split into two sections. Part II is now dedicated to networking topics while Part III looks at interactions between the Java program and the platform such as accessing serial/parallel ports and using hardware Java processors.
    2. Chapter 9: Tech section now includes demo programs that use histograms to illustrate saving/retrieving of class data, streaming of data to a target, saving/retrieving data types to/from a byte array, and filtering the stream.

July 25, 2003

  1. Over the past few months the site has been reorganized and several more sections have been completed to a beta level:
    1. Reduced Part I to 12 chapters from 16.
    2. The physics track reorganized into a short course approach on the basics of the types of programming required for experimental work. The topics include
      1. Basics of numerial analysis
      2. Simulation of the physics and experimental setup
      3. Analysis of data with the help of simulations
    3. Networking topics were moved to Part II.
  2. The Advanced track will include a series of pages describing the JVM. This will be related to the discussions in other sections about Java performance and hardware.
  3. The Tech track in Chapters 7 and 8 now include pages and programs on random distributions, adding statistics and data saving to histogram classes.

May 14, 2003

  1. Chapter 7 Physics : Monte Carlo page with demo is ready.

April 21, 2003

  1. Chapter 6 Tech and Physics section now ready for use. Will later add some more numerical methods pages to the Physics section.

April 19, 2003

  1. Renamed the helper programs from "Shells" to "Starters" to make it more clear what they are for.
  2. Code Index - updated the entries for the Starters. (Need to add a number of programs to the other tables.)

April 7, 2003

  1. Chapter 14: Java - overview of several topics such as the Class class, reflection, other APIs, etc.
  2. Chapter 5: Java : CLASSPATH - how to setup the CLASSPATH environment variable for finding user packages
  3. Chapter 5: Java - JAR Files - more information added running applications from JAR files.
  4. Chapter 6: Java - Images - more information on obtaining image files with applications and from JAR files.
  5. Chapter 1: Advanced : Plug-in - a page on how to set up web pages to initiate installation of a plug-in with the latest JVM.
  6. Chapter 1: Advanced : Target Users - deals with the issue of what version of Java coding to use and how to insure that users for your programs have a suitable JVM to run your program.
  7. Chapter 5: Advanced : Class Loading - an overview of the how classes are actually loaded into the JVM.
  8. Chapter 5: Advanced : Javadoc - discusses the Java tool for automatic creation of class and package documentation.

April 3, 2003

  1. Chapter 11: Basics : AWT techniques for reducing flickering in fasting changing graphics.
  2. Chapter 13: Java : Networking - basics of using Java for network applications.

March 28, 2003

  1. Chapter 12: Java : Tips & Techniques - now ready
  2. Chapter 11: Java : Image Handling & Processing - now ready
  3. Chapter 10: Java : Utilities & Other Tools & Resources - now ready

March 26, 2003

  1. Chapter 9: Java : IO - this introduction to IO section is now ready.

March 25, 2003

  1. Chapter 8: Java : Threads - this introduction to threads section is ready

March 21, 2003

  1. Chapter 7: Java - Event handling and more GUI development
  2. Chapter 7: Physics - needs work but exercises can be worked on.
  3. Chapters 8-14 : Java sections - older pages from previous course converted for this one, but these pages need revamping plus new and additional demo programs.

March 12, 2003

  1. Chapter 6: Advanced: Java2D - overview and examples of Java2D graphics.

March 11, 2003

  1. Chapter 4: Java: Interfaces - discuss the use of interfaces for callbacks in place of the function pointer technique in C.
  2. Chapter 5: Tech: Interfaces as Constants Holder Moved to Chapter 5: Java: Interfaces with Only Constants.

February 26, 2003

  1. Chapter 5: Physics is now ready for study. Includes an overview of interpolation and integration techniques.Two demos provided.

February 24, 2003

  1. For the Chapter 4: Physics all the equations in text were replace by image formulas.

February 21, 2003

  1. For the Chapter 5: Tech section the DecimalFormat and other formatting pages were added along with 4 demo programs.

February 17, 2003

  1. Added pages on the Shooting method for solving ODEs with boundary conditions. Includes a demo. Will substitute the current text equations with math images later.
  2. With the inclusion of an exercise on the shooting method, Chapter 4 is now available for study. Still remaining are some supplementary materials.

February 12, 2003

  1. Did a bit of housekeeping on the resources page but lots more left to do.
  2. Added two books - Number Cruncher and the Object-Oriented Implementation of Numerical Methods - to the math references.

February 11, 2003

  1. Chapter 4: Physics now includes pages for the 2nd & 4th order Runge-Kutta algorithms. Also, includes three exercises. Still need pages for boundary value problems and the shooting method. Otherwise, the chapter is ready.
  2. Chapter 4: Tech now includes pages on improved complex number and histogram classes. Also, a page on vector and matrix representations added.

February 9, 2003

  1. Added an index at the bottom of the page for each of the chapter sections for fast access.
  2. Chapter 3 : Physics : added some additional exercises.

February 6, 2003

  1. Began maintaining the code index. Will keep track here of all demos, programs, class, and starter source codes.
  2. Added a demo of static methods to Chapter 3: Java
  3. Added additional info in Chapter 4: Arrays about multi-dimensional arrays and about bounds checking.
  4. Added a page on the final modifier and constants to Chapter 5: Java

February 2, 2003

  1. Put math font images put into rest of the Chapter 2: Physics & Chapter 3 Physics equations.
  2. Chapter 3 is now suitable for study. The supplements are missing some pages, which will be added later. The Tech and Physics sections are basically complete, though more exercises will be added.

February 1, 2003

  1. Added a section and demo program on root finding and the bisection method to Chapter 3: Physics.
  2. Also added a couple of exercises to that chapter.

January 31, 2003

  1. Modified the array page in Chapter 3: Java and added an additional array page to Chapter 4:Java.
  2. Modified the complex number class in Chapter 3: Tech and added an additional page about an enhanced complex number class to Chapter 4: Tech
  3. Added pages to both the Tech and Physics sections of Chapter 3

January 30, 2003

For the ODE and predictor-corrector pages in Chapter 2: Physics, I replaced the equations in text with image versions displaying genuine math forms.

January 27, 2003

Refined the introductory pages of Chapter 1 & Chapter 2 to make them more readable. Added some miscellaneous details to other pages of Chapter 1 & 2, as well.

January 25, 2003

  1. Created this page and the Status Map of the web materials.
  2. Chapter 2 Physics section added an intro to the Predictor-Corrector and a demo page.
  3. Added information in the Chapter 1: Compatability and Getting Started pages about the need to target explicitly the output of the compiler for 1.1 virtual machines.
  4. Start to add "Problems" to some pages. These will be optional explorations for the students and not count towards the exercises needed for course credit.
  Part I Part II Part III
Java Core 1  2  3  4  5  6  7  8  9  10  11  12 13 14 15 16 17
18 19 20
22 23 24

1  2  3  4  5  6  7  8  9  10  11  12

Tech 1  2  3  4  5  6  7  8  9  10  11  12
Physics 1  2  3  4  5  6  7  8  9  10  11  12

Java is a trademark of Sun Microsystems, Inc.