Selected Tips

Using Class Methods and Variables
Using java.lang.Class
Overload Resolution
Goto Statements and Java Programming
Narrowing and Widening Conversions
Using Import Declarations
Default Constructors (jdk 1.1)
True/False Random Values with NextBoolean,
Command Dispatching
Global Variables
Division by Zero

Manipulating Java arrays
Sorting Arrays
String and String Buffer,

Parsing Input
Using BreakIterator to Parse Text
Extracting Links from an HTML File
String Tokenizing 2
String Tokenizing 1

Java IO
Formatting Decimal Numbers
Formatting BigDecimal Numbers
Big Decimal
Release — Java 2

Java I/O redirection
Random Access for Files
Capturing Standard Output in a Log
Converting Pathnames to URLs
Unpacking Zip Files
Walking across File Systems
Temporary Files and

Why Use Threads?
Using Synchronized Blocks
Minimizing the Overhead
Synchronized Statements

Systems programming
How Bootstrap Classes are Found
Invoking Programs from Java Applications
Package Version Identification (Java 2)
Reference Objects (Java 2)
Jar File Manifests (Java 2)
JAR Files Reflection (Introspection)

Java Tools & JVM
Analyzing Bytecode & "javap"
Javap and .class Files,
Using SecurityManager
Policies and the Policy File

XML Introduction

Serialization in the Real World
Serialization and Class Versioning
Release — JDK 1.1

August 9, 1999
Using List Collections Efficiently
Release — Java 2
Using the new Vector Collection
Collections and Hashtable, and

StringBuffer Editing
Interning Strings (Java 2)