## Thinking in Java, 3rd ed. Revision 4.0

[ Viewing Hints ] [ Book Home Page ] [ Free Newsletter ]
[ Seminars ] [ Seminars on CD ROM ] [ Consulting ]

# Thinking in Java, 3rd ed. Revision 4.0 - Index

##

, ! , & , > , < , + , . , = , @ , A , B , C , D , E , F , G , H , I , J , K , L , M , N , O , P , Q , R , S , T , U , V , W , X , Y , Z , [ , ^ , |

javac , 1
!
!, 1

!=, 1
  operator, 1

&
&, 1
&&, 1
&=, 1
>
>, 1
>>, 1
>>=, 1
>=, 1
<
<, 1
<<, 1
<<=, 1
<=, 1
+

+, 1
  operator + for String, 1

.
.NET, 1
=

==, 1
  operator, 1

@
@author, 1
@deprecated, 1
@docRoot, 1
@inheritDoc, 1
@link, 1
@param, 1
@return, 1
@see, 1
@since, 1
@throws, 1
@version, 1
A

abstract
  class, 1
  inheriting from an abstract class, 1
  keyword, 1
  vs. interface, 1

Abstract Window Toolkit (AWT), 1
AbstractButton, 1
abstraction, 1
AbstractSequentialList, 1
AbstractSet, 1

access
  class, 1
  control, 1, 2
  inner classes & access rights, 1
  package access and friendly, 1
  specifiers, 1, 2, 3
  within a directory, via the default package, 1

action command, 1
ActionEvent, 1, 2
ActionListener, 1
actor, in use cases, 1

adapters
  listener adapters, 1

add( ), ArrayList, 1
addActionListener( ), 1, 2
addChangeListener, 1
addition , 1
addListener, 1
addXXXListener( ), 1
Adler32, 1
aggregate array initialization, 1
aggregation, 1

aliasing, 1
  and String, 1
  during a method call, 1

align, 1
allocate( ), 1
allocateDirect( ), 1
alphabetic vs. lexicographic sorting, 1

analysis
  and design, object-oriented, 1
  paralysis, 1
  requirements analysis, 1

AND
  bitwise, 1
  logical (&&), 1

anonymous inner class, 1, 2, 3
  and table-driven code, 1

Ant, automated build process using, 1
antcall, 1

applet, 1
  advantages for client/server systems, 1
  align, 1
  archive tag, for HTML and JAR files, 1
  classpath, 1
  codebase, 1
  combined applets and applications, 1
  name, 1
  packaging applets in a JAR file to optimize loading, 1
  parameter, 1
  placing inside a Web page, 1
  restrictions, 1
  signed, 1

appletviewer, 1

application
  application builder, 1
  application framework, 1
  application framework, and applets, 1
  combined applets and applications, 1
  windowed applications, 1

archive tag, for HTML and JAR files, 1

argument
  constructor, 1
  final, 1, 2
  passing a reference into a method, 1
  variable argument lists (unknown quantity and type of arguments), 1

array, 1
  associative array, 1
  associative array, Map, 1
  bounds checking, 1
  comparing arrays, 1
  copying an array, 1
  dynamic aggregate initialization syntax, 1
  element comparisons, 1
  first-class objects, 1
  initialization, 1
  length, 1, 2
  multidimensional, 1
  of objects, 1
  of primitives, 1
  return an array, 1

ArrayList, 1, 2, 3, 4, 5, 6
  add( ), 1
  get( ), 1, 2
  size( ), 1
  type-conscious ArrayList, 1

Arrays class, container utility, 1
Arrays.asList( ), 1
Arrays.binarySearch( ), 1
Arrays.fill( ), 1
asCharBuffer( ), 1
assertion, JDK 1.4, 1
assigning objects, 1
assignment, 1

associative array, 1, 2
  Maps, 1

atomic operation, 1
auto-decrement operator, 1
auto-increment operator, 1

automated
  build process using Ant, 1
  unit testing, 1

automatic type conversion, 1
available( ), 1
B
bag, 1
base 16, 1
base 8, 1

base class, 1, 2, 3
  abstract base class, 1
  base-class interface, 1
  constructor, 1
  constructors and exceptions, 1
  initialization, 1

base types, 1

BASIC
  language, 1
  Microsoft Visual BASIC, 1

basic concepts of object-oriented programming (OOP), 1
BasicArrowButton, 1

BeanInfo
  custom BeanInfo, 1

Beans
  and Borland’s Delphi, 1
  and Microsoft’s Visual BASIC, 1
  application builder, 1
  bound properties, 1
  component, 1
  constrained properties, 1
  custom BeanInfo, 1
  custom property editor, 1
  custom property sheet, 1
  events, 1
  EventSetDescriptors, 1
  FeatureDescriptor, 1
  getBeanInfo( ), 1
  getEventSetDescriptors( ), 1
  getMethodDescriptors( ), 1
  getName( ), 1
  getPropertyDescriptors( ), 1
  getPropertyType( ), 1
  getReadMethod( ), 1
  getWriteMethod( ), 1
  indexed property, 1
  Introspector, 1
  JAR files for packaging, 1
  manifest file, 1
  Method, 1
  MethodDescriptors, 1
  naming convention, 1
  properties, 1
  PropertyChangeEvent, 1
  PropertyDescriptors, 1
  ProptertyVetoException, 1
  reflection, 1, 2
  Serializable, 1
  visual programming, 1

Beck, Kent, 1

binary
  numbers, 1
  numbers, printing, 1
  operators, 1

binarySearch( ), 1

binding
  dynamic binding, 1
  dynamic, late, or run-time binding, 1
  early, 1
  late, 1
  late binding, 1
  method call binding, 1
  run-time binding, 1

BitSet, 1

bitwise
  AND, 1
  AND operator (&), 1
  copy, 1
  EXCLUSIVE OR XOR (^), 1
  NOT ~, 1
  operators, 1
  OR, 1
  OR operator (|), 1

blank final, 1

blocking
  and available( ), 1
  and threads, 1
  on I/O, 1

Booch, Grady, 1

book
  errors, reporting, 1
  updates of the book, 1

Boolean, 1
  algebra, 1
  and casting, 1
  operators that won’t work with boolean, 1
  vs. C and C++, 1

BorderLayout, 1

Borland, 1
  Delphi, 1

bound properties, 1
bounds checking, array, 1
BoxLayout, 1
break keyword, 1
breakpoints, debugging, 1
browser, class browser, 1
buffer, nio, 1
BufferedInputStream, 1
BufferedOutputStream, 1
BufferedReader, 1, 2, 3
BufferedWriter, 1, 2
build process, using Ant, 1
build.xml, 1
buildfile, 1
builds, daily, Extreme Programming, 1
business objects/logic, 1

button
  creating your own, 1
  radio button, 1
  Swing, 1, 2

ButtonGroup, 1, 2
ByteArrayInputStream, 1
ByteArrayOutputStream, 1
ByteBuffer, 1
C

C#
  programming language, 1
  Thinking in C#, 1

C++, 1
  copy constructor, 1
  exception handling, 1
  Standard Container Library aka STL, 1
  templates, 1
  vector class, vs. array and ArrayList, 1

callback, 1, 2, 3, 4
  and inner classes, 1

capacity, of a HashMap or HashSet, 1
capitalization of package names, 1
case statement, 1

cast, 1, 2, 3
  and containers, 1
  and primitive types, 1
  from float or double to integral, truncation, 1
  operators, 1

catch
  catching an exception, 1
  catching any exception, 1
  keyword, 1

certificate, applet signing, 1
chained exceptions in JDK 1.4, 1
change, vector of, 1
channel, nio, 1
CharArrayReader, 1
CharArrayWriter, 1
CharBuffer, 1
CharSequence, 1
Charset, 1
check box, 1
check instruction, design by contract, 1

checked exceptions, 1
  converting to unchecked exceptions, 1

CheckedInputStream, 1
CheckedOutputStream, 1
Checksum class, 1

class, 1, 2, 3
  abstract class, 1
  access, 1
  anonymous inner class, 1, 2, 3
  base class, 1, 2, 3
  browser, 1
  class hierarchies and exception handling, 1
  class literal, 1, 2
  Class object, 1, 2, 3
  creators, 1
  defining the interface, 1
  derived class, 1
  equivalence, and instanceof/isInstance( ), 1
  final classes, 1
  forName( ), 1, 2
  getClass( ), 1
  getConstructors( ), 1
  getInterfaces( ), 1
  getMethods( ), 1
  getName( ), 1
  getSuperclass( ), 1
  inheritance diagrams, 1
  inheriting from an abstract class, 1
  inheriting from inner classes, 1
  initialization & class loading, 1
  initialization of fields, 1
  initializing members at point of definition, 1
  initializing the base class, 1
  inner class, 1
  inner class nesting within any arbitrary scope, 1
  inner classes, 1
  inner classes & access rights, 1
  inner classes and overriding, 1
  inner classes and super, 1
  inner classes and Swing, 1
  inner classes and upcasting, 1
  inner classes in methods & scopes, 1
  inner classes, identifiers and .class files, 1
  instance of, 1
  intializing the derived class, 1
  isInstance, 1
  isInterface( ), 1
  keyword, 1
  loading, 1
  member initialization, 1
  multiply-nested, 1
  newInstance( ), 1
  object, 1
  order of initialization, 1
  printInfo( ), 1
  private inner classes, 1
  public class, and compilation units, 1
  read-only classes, 1
  referring to the outer class object in an inner class, 1
  RTTI using the Class object, 1
  static inner classes, 1
  style of creating classes, 1
  subobject, 1

class-responsibility-collaboration (CRC) cards, 1
ClassCastException, 1, 2

classpath, 1, 2
  ant, 1

cleanup
  and garbage collector, 1
  guaranteeing with finalize( ), 1
  performing, 1
  with finally, 1

clear( ), nio, 1

client programmer, 1
  vs. library creator, 1

clipboard, system, 1

clone( ), 1
  and composition, 1
  and inheritance, 1
  Object.clone( ), 1
  removing/turning off cloneability, 1
  super.clone( ), 1, 2
  supporting cloning in derived classes, 1

Cloneable interface, 1
CloneNotSupportedException, 1
close( ), 1
closure, and inner classes, 1

code
  coding standards, 1, 2
  organization, 1
  re-use, 1
  revision control system, 1
  source code, 1

codebase, 1
coding style, 1

collection, 1, 2
  class, 1

Collections.enumeration( ), 1
Collections.fill( ), 1
Collections.reverseOrder( ), 1

collision
  during hashing, 1
  name, 1

com.bruceeckel.swing, 1
combo box, 1
comma operator, 1, 2
comments, and embedded documentation, 1
commit, CVS, 1
Commitment, Theory of Escalating, 1
common interface, 1
common pitfalls when using operators, 1
Comparable, 1, 2
Comparator, 1, 2
compareTo( ), in java.lang.Comparable, 1
comparing arrays, 1
compilation unit, 1
compile-time constant, 1
compiling a Java program, 1
component, and JavaBeans, 1

composition, 1, 2
  and cloning, 1
  and design, 1
  and dynamic behavior change, 1
  choosing composition vs. inheritance, 1
  combining composition & inheritance, 1
  vs. inheritance, 1

compression, library, 1
concept, high, 1
concurrency, and Swing, 1
ConcurrentModificationException, 1
conditional operator, 1
conference, Software Development Conference, 1

console
  input, 1
  sending exceptions to, 1
  Swing display framework in com.bruceeckel.swing, 1

const, in C++, 1

constant
  compile-time constant, 1
  constant folding, 1
  groups of constant values, 1
  implicit constants, and String, 1

constrained properties, 1

constructor, 1
  and anonymous inner classes, 1
  and exception handling, 1
  and exceptions, 1
  and finally, 1
  and overloading, 1
  and polymorphism, 1
  arguments, 1
  base-class constructor, 1
  base-class constructors and exceptions, 1
  behavior of polymorphic methods inside constructors, 1
  C++ copy constructor, 1
  calling base-class constructors with arguments, 1
  calling from other constructors, 1
  Constructor class for reflection, 1
  default, 1
  initialization during inheritance and composition, 1
  name, 1
  no-arg constructors, 1
  order of constructor calls with inheritance, 1
  return value, 1
  static construction clause, 1
  synthesized default constructor access, 1

consulting & mentoring provided by MindView, Inc., 1

container
  class, 1, 2
  of primitives, 1
  utilities for container classes, 1

continue keyword, 1
contract, design by (DBC) , and assertions, 1

control
  access, 1, 2
  framework, and inner classes, 1

conversion
  automatic, 1
  narrowing conversion, 1, 2
  widening conversion, 1

copy
  copying an array, 1
  deep copy, 1
  shallow copy, 1

copyright notice
  source code, 1

costs, startup, 1
coupling, 1
coverage testing, 1
CRC, class-responsibility-collaboration cards, 1
CRC32, 1
critical section, and synchronized block, 1
D
daemon threads, 1
daily builds, 1

data
  final , 1
  primitive data types and use with operators, 1
  static initialization, 1

data type
  equivalence to class, 1

DataFlavor, 1
DatagramChannel, 1
DataInput, 1
DataInputStream, 1, 2, 3, 4
DataOutput, 1
DataOutputStream, 1, 2, 3
DBC, design by contract, and assertions, 1
dead, Thread, 1

deadlock
  conditions, 1
  multithreading, 1

debugger, JDK, 1
decode( ) , character set, 1
decorator design pattern, 1
decoupling, via polymorphism, 1, 2
decrement operator, 1

deep copy, 1, 2
  using serialization to perform deep copying, 1

default constructor, 1
  access the same as the class, 1
  synthesizing a default constructor, 1

default keyword, in a switch statement, 1
default package, 1
DefaultMutableTreeNode, 1
defaultReadObject( ), 1
DefaultTreeModel, 1
defaultWriteObject( ), 1
DeflaterOutputStream, 1
Delphi, from Borland, 1
Demarco, Tom, 1
dependencies, ant, 1
dequeue, 1

derived
  derived class, 1
  derived class, initializing, 1
  types, 1

design, 1
  adding more methods to a design, 1
  analysis and design, object-oriented, 1
  and composition, 1
  and inheritance, 1
  and mistakes, 1
  five stages of object design, 1
  library design, 1
  patterns, 1, 2

design by contract (DBC), and assertions, 1

design patterns, 1, 2
  decorator, 1
  singleton, 1
  template method, 1, 2, 3

destructor, 1, 2, 3
  Java doesn’t have one, 1

development, incremental, 1

diagram
  class inheritance diagrams, 1
  inheritance, 1
  use case, 1

dialog box, 1
dialog, file, 1
dialog, tabbed, 1
dictionary, 1
digital signing, 1
dining philosophers, threading, 1

directory
  and packages, 1
  creating directories and paths, 1
  lister, 1

display framework, for Swing, 1
dispose( ), 1
division, 1
do-while, 1
doclets, 1

documentation, 1
  comments & embedded documentation, 1

double
  and threading, 1
  literal value marker (d or D), 1

downcast, 1, 2, 3
  type-safe downcast in run-time type identification, 1

drawing lines in Swing, 1
drop-down list, 1

dynamic
  behavior change with composition, 1
  binding, 1, 2

dynamic aggregate initialization syntax for arrays, 1
E
early binding, 1, 2
East, BorderLayout, 1
editor, creating one using the Swing JTextPane, 1

efficiency
  and arrays, 1
  and final, 1
  and threads, 1

elegance, in programming, 1
else keyword, 1
encapsulation, 1
encode( ), character set, 1

endian
  big endian, 1
  little endian, 1

enum, groups of constant values in C & C++, 1
Enumeration, 1

equals( ), 1, 2
  and hashed data structures, 1
  conditions for defining properly, 1
  overriding for HashMap, 1

equivalence
  ==, 1
  object equivalence, 1

error
  handling with exceptions, 1
  recovery, 1
  reporting, 1
  reporting errors in book, 1
  reporting, with the logging API in JDK 1.4, 1
  standard error stream, 1

Escalating Commitment, Theory of, 1

event
  event-driven programming, 1
  event-driven system, 1
  events and listeners, 1
  JavaBeans, 1
  listener, 1
  listener, order of execution, 1
  model, Swing, 1
  multicast, 1
  multicast, and JavaBeans, 1
  responding to a Swing event, 1
  Swing event model, 1
  unicast, 1

EventSetDescriptors, 1
evolution, in program development, 1

exception
  and base-class constructors, 1
  and constructors, 1
  and inheritance, 1, 2
  and the console, 1
  catching an exception, 1
  catching any exception, 1
  changing the point of origin of the exception, 1
  checked, 1
  class hierarchies, 1
  constructors, 1
  creating your own, 1
  design issues, 1
  Error class, 1
  Exception class, 1
  exception handler, 1
  exception handling, 1
  exception matching, 1
  FileNotFoundException, 1
  fillInStackTrace( ), 1
  finally, 1
  guarded region, 1
  handler, 1
  handling, 1
  JDK 1.4 chained exceptions, 1
  losing an exception, pitfall, 1
  NullPointerException, 1
  printStackTrace( ), 1
  re-throwing an exception, 1
  restrictions, 1
  RuntimeException, 1
  specification, 1, 2
  termination vs. resumption, 1
  Throwable, 1
  throwing an exception, 1, 2
  try, 1
  try block, 1
  typical uses of exceptions, 1
  converting checked to unchecked, 1

exceptional condition, 1
exponential notation, 1
extending a class during inheritance, 1

extends, 1, 2, 3
  and interface, 1
  keyword, 1

extensible program, 1
extension, pure inheritance vs. extension, 1
extension, sign, 1
extension, zero, 1
extensions, ant, 1

Externalizable, 1
  alternative approach to using, 1

Extreme Programming
  and daily builds, 1
  XP, 1, 2

F
fail fast containers, 1
false, 1
FeatureDescriptor, 1
Field, for reflection, 1
fields, initializing fields in interfaces, 1
FIFO, 1
FIFO queue, 1

file
  characteristics of files, 1
  dialogs, 1
  File class, 1, 2, 3
  File.list( ), 1
  incomplete output files, errors and flushing, 1
  JAR file, 1
  locking, 1
  memory-mapped files, 1

File Transfer Protocol (FTP), 1
FileChannel, 1
FileDescriptor, 1
FileInputReader, 1
FileInputStream, 1
FileLock, 1
FilenameFilter, 1
FileNotFoundException, 1
FileOutputStream, 1
FileReader, 1, 2
FileWriter, 1, 2
fillInStackTrace( ), 1
FilterInputStream, 1
FilterOutputStream, 1
FilterReader, 1
FilterWriter, 1

final, 1
  and efficiency, 1
  and private, 1
  and static, 1
  argument, 1, 2
  blank finals, 1
  classes, 1
  data, 1
  keyword, 1
  method, 1
  methods, 1, 2
  static primitives, 1
  with object references, 1

finalize( ), 1, 2
  and inheritance, 1
  calling directly, 1

finally, 1, 2
  and constructors, 1
  keyword, 1
  pitfall, 1

finding .class files during loading, 1
flavor, clipboard, 1
flip( ), nio, 1

float
  floating point true and false, 1

float, literal value marker(F), 1
FlowLayout, 1
flushing output files, 1
focus traversal, 1
folding, constant, 1
for keyword, 1
forName( ), 1, 2
FORTRAN, 1
forward referencing, 1
Fowler, Martin, 1, 2, 3, 4

framework
  application framework and applets, 1
  control framework and inner classes, 1

FTP, File Transfer Protocol (FTP), 1

function
  member function, 1
  overriding, 1

G

garbage collection, 1, 2
  and cleanup, 1
  forcing finalization, 1
  how the collector works, 1
  order of object reclamation, 1
  reachable objects, 1

generator, 1
  object, to fill arrays and containers, 1

generics
  Java generics, 1

get( )
  ArrayList, 1, 2
  HashMap, 1

getBeanInfo( ), 1
getBytes( ), 1
getChannel( ), 1
getClass( ), 1, 2
getConstructor( ), 1
getConstructors( ), 1
getContentPane( ), 1
getContents( ), 1
getEventSetDescriptors( ), 1
getInterfaces( ), 1
getMethodDescriptors( ), 1
getMethods( ), 1
getModel( ), 1
getName( ), 1, 2
getPriority( ), 1
getPropertyDescriptors( ), 1
getPropertyType( ), 1
getReadMethod( ), 1
getSelectedValues( ), 1
getState( ), 1
getSuperclass( ), 1
getTransferData( ), 1
getTransferDataFlavors( ), 1
getWriteMethod( ), 1
Glass, Robert, 1
glue, in BoxLayout, 1
GNU make, 1
goto, lack of in Java, 1
graphical user interface (GUI), 1, 2

graphics, 1
  Graphics class, 1

greater than (>), 1
greater than or equal to (>=), 1
greedy quantifiers, 1
GridBagLayout, 1
GridLayout, 1, 2
group, thread, 1
groups, regular expression, 1
guarded region, in exception handling, 1

GUI
  graphical user interface, 1, 2
  GUI builders, 1

guidelines
  coding standards, 1
  object development, 1

GZIPInputStream, 1
GZIPOutputStream, 1
H
handler, exception, 1

has-a, 1
  relationship, composition, 1

hash function, 1

hashCode( ), 1, 2, 3, 4
  and hashed data structures, 1
  issues when writing, 1
  overriding for HashMap, 1
  recipe for generating decent, 1

hashing, 1
  and hash codes, 1
  external chaining, 1
  perfect hashing function, 1

HashMap, 1, 2, 3
HashSet, 1, 2
Hashtable, 1, 2
hasNext( ), Iterator, 1
Hexadecimal, 1
hiding, implementation, 1, 2
high concept, 1
HPROF, JDK profiler, 1
HTML on Swing components, 1
HTMLConverter, 1
I

I/O
  and threads, blocking, 1
  available( ), 1
  between threads, 1
  blocking on I/O, 1
  blocking, and available( ), 1
  BufferedInputStream, 1
  BufferedOutputStream, 1
  BufferedReader, 1, 2, 3
  BufferedWriter, 1, 2
  ByteArrayInputStream, 1
  ByteArrayOutputStream, 1
  characteristics of files, 1
  CharArrayReader, 1
  CharArrayWriter, 1
  CheckedInputStream, 1
  CheckedOutputStream, 1
  close( ), 1
  compression library, 1
  console input, 1
  controlling the process of serialization, 1
  DataInput, 1
  DataInputStream, 1, 2, 3, 4
  DataOutput, 1
  DataOutputStream, 1, 2, 3
  DeflaterOutputStream, 1
  directory lister, 1
  directory, creating directories and paths, 1
  Externalizable, 1
  File, 1, 2
  File class, 1
  File.list( ), 1
  FileDescriptor, 1
  FileInputReader, 1
  FileInputStream, 1
  FilenameFilter, 1
  FileOutputStream, 1
  FileReader, 1, 2
  FileWriter, 1, 2
  FilterInputStream, 1
  FilterOutputStream, 1
  FilterReader, 1
  FilterWriter, 1
  from standard input, 1
  GZIPInputStream, 1
  GZIPOutputStream, 1
  InflaterInputStream, 1
  input, 1
  InputStream, 1
  InputStreamReader, 1, 2
  internationalization, 1
  library, 1
  lightweight persistence, 1
  LineNumberInputStream, 1
  LineNumberReader, 1
  mark( ), 1
  mkdirs( ), 1
  network I/O, 1
  new nio, 1
  ObjectOutputStream, 1
  output, 1
  OutputStream, 1, 2
  OutputStreamWriter, 1, 2
  pipe, 1
  piped streams, 1
  PipedInputStream, 1
  PipedOutputStream, 1, 2
  PipedReader, 1
  PipedWriter, 1
  PrintStream, 1
  PrintWriter, 1, 2, 3
  PushbackInputStream, 1
  PushBackReader, 1
  RandomAccessFile, 1, 2, 3
  read( ), 1
  readDouble( ), 1
  Reader, 1, 2, 3
  readExternal( ), 1
  readLine( ), 1, 2, 3, 4
  readObject( ), 1
  redirecting standard I/O, 1
  renameTo( ), 1
  reset( ), 1
  seek( ), 1, 2
  SequenceInputStream, 1, 2
  Serializable, 1
  setErr(PrintStream), 1
  setIn(InputStream), 1
  setOut(PrintStream), 1
  StreamTokenizer, 1
  StringBuffer, 1
  StringBufferInputStream, 1
  StringReader, 1, 2
  StringWriter, 1
  System.err, 1
  System.in, 1, 2
  System.out, 1
  transient, 1
  typical I/O configurations, 1
  Unicode, 1
  write( ), 1
  writeBytes( ), 1
  writeChars( ), 1
  writeDouble( ), 1
  writeExternal( ), 1
  writeObject( ), 1
  Writer, 1, 2, 3
  ZipEntry, 1
  ZipInputStream, 1
  ZipOutputStream, 1

Icon, 1
if-else statement, 1, 2
IllegalMonitorStateException, 1
ImageIcon, 1
immutable objects, 1

implementation, 1
  and interface, 1, 2
  and interface, separating, 1
  and interface, separation, 1
  hiding, 1, 2, 3
  separation of interface and implementation, 1

implements keyword, 1
import keyword, 1
increment operator, 1
incremental development, 1
indexed property, 1
indexing operator [ ], 1
indexOf( ), String, 1
InflaterInputStream, 1

inheritance, 1, 2, 3, 4, 5
  and cloning, 1
  and final, 1
  and finalize( ), 1
  and synchronized, 1
  choosing composition vs. inheritance, 1
  class inheritance diagrams, 1
  combining composition & inheritance, 1
  designing with inheritance, 1
  diagram, 1
  extending a class during, 1
  extending interfaces with inheritance, 1
  from an abstract class, 1
  from inner classes, 1
  inheritance and method overloading vs. overriding, 1
  initialization with inheritance, 1
  multiple inheritance in C++ and Java, 1
  pure inheritance vs. extension, 1
  specialization, 1
  vs. composition, 1

initial capacity, of a HashMap or HashSet, 1

initialization
  and class loading, 1
  array initialization, 1
  base class, 1
  class member, 1
  constructor initialization during inheritance and composition, 1
  initializing class members at point of definition, 1
  initializing with the constructor, 1
  instance initialization, 1, 2
  lazy, 1
  member initializers, 1
  non-static instance initialization, 1
  of class fields, 1
  of method variables, 1
  order of initialization, 1, 2
  static, 1
  with inheritance, 1

inline method calls, 1
inner class, 1, 2

inner class
    access rights, 1
    and overriding, 1
    and super, 1
  and control frameworks, 1
  and Swing, 1
  and upcasting, 1
  anonymous inner class, 1, 2
    and table-driven code, 1
  callback, 1
  closure, 1
  hidden reference to the object of the enclosing class, 1
  identifiers and .class files, 1
  in methods & scopes, 1
  inheriting from inner classes, 1
  nesting within any arbitrary scope, 1
  private inner classes, 1
  referring to the outer class object, 1
  static inner classes, 1

input, console, 1
InputStream, 1
InputStreamReader, 1, 2
insertNodeInto( ), 1

instance
  instance initialization , 1
  non-static instance initialization, 1
  of a class, 1

instanceof
  dynamic instanceof, 1
  keyword, 1

Integer
  parseInt( ), 1
  wrapper class, 1

interface
  and implementation, separation of, 1, 2, 3
  and inheritance, 1
  base-class interface, 1
  Cloneable interface used as a flag, 1
  common interface, 1
  defining the class, 1
  for an object, 1
  initializing fields in interfaces, 1
  keyword, 1
  name collisions when combining interfaces, 1
  nesting interfaces within classes and other interfaces, 1
  private, as nested interfaces, 1
  Runnable, 1
  upcasting to an interface, 1
  user, 1
  vs. abstract, 1
  vs. implemenation, 1

interfaces
  graphical user interface (GUI), 1, 2
  responsive user, 1

internationalization, in I/O library, 1
Internet Service Provider (ISP), 1

interrupt( ), 1
  threading, 1, 2

intranet, 1
  and applets, 1

Introspector, 1
invariant, design by contract, 1
invokeandWait( ), SwingUtilities, 1
invokeLater( ), SwingUtilities, 1

is-a, 1
  relationship, inheritance, 1
    and upcasting, 1
  vs. is-like-a relationships, 1

is-like-a, 1
isDaemon( ), 1
isDataFlavorSupported( ), 1
isInstance, 1
isInterface( ), 1
ISP (Internet Service Provider), 1
iteration, in program development, 1

iterator, 1, 2, 3
  hasNext( ), 1
  next( ), 1

J
J2EE, 1
Jacobsen, Ivar, 1

JApplet, 1
  menus, 1

JAR, 1
  archive tag, for HTML and JAR files, 1
  file, 1
  jar files and classpath, 1
  packaging applets to optimize loading, 1
  utility, 1

Java
  and pointers, 1
  and set-top boxes, 1
  AWT, 1
  compiling and running a program, 1
  containers library, 1
  Java Foundation Classes (JFC/Swing), 1
  Java Plugin, 1
  Java Virtual Machine (JVM), 1
  Java Web Start, 1
  operators, 1
  public Java seminars, 1
  strategies for transition to, 1
  versions, 1
  why it succeeds, 1

JavaBeans
  see Beans, 1

javadoc, 1
JavaMail API, 1

JButton, 1
  Swing, 1

JCheckBox, 1, 2
JCheckBoxMenuItem, 1, 2
JComboBox, 1
JComponent, 1, 2
JDB, Java Debugger, 1

JDialog, 1
  menus, 1

JDK 1.1
  I/O streams, 1

JDK 1.4, 1
  assertion mechanism, 1
  chained exceptions, 1
  Java Web Start, 1
  LinkedHashSet, 1
  logging API, 1
  new I/O, 1
  preferences API, 1
  regular expressions, 1
  LinkedHashMap, 1

JDK, downloading and installing, 1
JFC, Java Foundation Classes (Swing), 1
JFileChooser, 1

JFrame, 1, 2
  menus, 1

JIT, just-in-time compilers, 1
JLabel, 1, 2
JList, 1
JMenu, 1, 2
JMenuBar, 1, 2
JMenuItem, 1, 2, 3, 4, 5
JNLP, Java Network Launch Protocol, 1
join( ), threading, 1
JOptionPane, 1
Joy, Bill, 1
JPanel, 1, 2, 3, 4
JPopupMenu, 1
JProgressBar, 1
JRadioButton, 1, 2
JScrollPane, 1, 2, 3, 4
JSlider, 1
JTabbedPane, 1
JTable, Swing, 1
JTextArea, 1, 2
JTextField, 1, 2
JTextPane, 1
JToggleButton, 1
JTree, 1
JUnit unit testing framework, 1
JVM (Java Virtual Machine), 1
K
key, applet signing, 1

keyboard
  navigation, and Swing, 1
  shortcuts, 1

keySet( ), 1
Koenig, Andrew, 1
L
label, 1

labeled
  break, 1
  continue, 1

late binding, 1, 2, 3
layout, controlling layout with layout managers, 1
lazy initialization, 1
left-shift operator (<<), 1

length
  array member, 1
  for arrays, 1

less than (<), 1
less than or equal to (<=), 1
lexicographic vs. alphabetic sorting, 1

library
  creator, vs. client programmer, 1
  design, 1
  use, 1

LIFO, 1

lightweight
  persistence, 1
  Swing components, 1

LineNumberInputStream, 1
LineNumberReader, 1
linked list, 1
LinkedHashMap, 1, 2, 3, 4
LinkedHashSet, 1, 2
LinkedList, 1, 2, 3
Linux , 1

List, 1, 2, 3, 4, 5
  boxes, 1
  drop-down list, 1
  sorting and searching, 1

listener
  adapters, 1
  and events, 1
  classes, 1
  interfaces, 1

Lister, Timothy, 1
ListIterator, 1

literal
  class literal, 1, 2
  double, 1
  float, 1
  long, 1
  values, 1

little endian, 1
load factor, of a HashMap or HashSet, 1

loading
  .class files, 1
  initialization & class loading, 1
  loding a class, 1

lock( ), file locking, 1
lock, for multithreading, 1
locking, file, 1
logarithms, natural, 1
logging API in JDK 1.4, 1

logical
  AND, 1
  operator and short-circuiting, 1
  operators, 1
  OR, 1

long, and threading, 1
long, literal value marker (L), 1
look & feel, pluggable, 1
lvalue, 1
M
mail, Simple Mail Transfer Protocol (SMTP), 1
main( ), 1
maintenance, program, 1
make utility, for program building, 1
makefile, 1
management obstacles, 1
manifest file, for JAR files, 1, 2
Map, 1, 2, 3, 4, 5
Map.Entry, 1
MappedByteBuffer, 1
mark( ), 1
matcher, regular expression, 1

Math.random( ), 1
  values produced by, 1

mathematical operators, 1
max( ), 1

member
  initializers, 1
  member function, 1
  object, 1

memory exhaustion, solution via References, 1
memory-mapped files, 1
mentoring and training, 1, 2

menu
  JDialog, JApplet, JFrame, 1
  JPopupMenu, 1

message box, in Swing, 1
message, sending, 1
Messenger object, 1

Method, 1
  adding more methods to a design, 1
  aliasing during method calls, 1, 2
  behavior of polymorphic methods inside constructors, 1
  distinguishing overloaded methods, 1
  final, 1, 2, 3
  for reflection, 1
  inline method calls, 1
  inner classes in methods & scopes, 1
  lookup tool, 1
  method call binding, 1
  overloading, 1
  overriding private, 1
  passing a reference into a method, 1
  polymorphic method call, 1
  private, 1
  protected methods, 1
  recursive, 1
  static, 1, 2
  synchronized method and blocking, 1
  initialization of method variables, 1

MethodDescriptors, 1
methodology, analysis and design, 1
Meyers, Scott, 1

Microsoft, 1
  Visual BASIC, 1

min( ), 1
mission statement, 1
mistakes, and design, 1
mkdirs( ), 1
mnemonics (keyboard shortcuts), 1
modulus, 1
monitor, for multithreading, 1
Mono, 1
Mozilla, 1
multi-tiered systems, 1

multicast, 1
  event, and JavaBeans, 1
  multicast events, 1

multidimensional arrays, 1
multiparadigm programming, 1
multiple inheritance, in C++ and Java, 1
multiplication, 1
multiply-nested class, 1
multitasking, 1

multithreading, 1
  and containers, 1
  blocking, 1
  deciding what methods to synchronize, 1
  drawbacks, 1
  Runnable, 1
  when to use it, 1

mutex, 1
mutual exclusion, threading, 1
N

name, 1
  clash, 1
  collisions, 1
  collisions when combining interfaces, 1
  creating unique package names, 1
  spaces, 1

narrowing conversion, 1, 2, 3
natural logarithms, 1
nesting interfaces, 1
network I/O, 1
new I/O, 1

new operator, 1
  and primitives, array, 1

newInstance( ), 1
  reflection, 1

next( ), Iterator, 1

nio, 1
  buffer, 1
  channel, 1

no-arg constructors, 1
North, BorderLayout, 1
not equivalent (!=), 1
NOT, logical (!), 1
notify( ), 1
notifyAll( ), 1
notifyListeners( ), 1
null, 1
NullPointerException, 1
numbers, binary, 1
O

object, 1, 2
  aliasing, 1
  arrays are first-class objects, 1
  assigning objects by copying references, 1
  business object/logic, 1
  Class object, 1, 2, 3
  clone( ), 1, 2
  creation, 1
  equals( ), 1
  equivalence, 1
  equivalence vs. reference equivalence, 1, 2
  final, 1
  five stages of object design, 1
  getClass( ), 1
  guidelines for object development, 1
  hashCode( ), 1
  immutable objects, 1
  interface to, 1
  lock, for multithreading, 1
  member, 1
  object-oriented programming, 1
  process of creation, 1
  serialization, 1, 2
  standard root class, default inheritance from, 1
  wait( ) and notify( ), 1
  web of objects, 1, 2

object-oriented
  analysis and design, 1
  basic concepts of object-oriented programming (OOP), 1

ObjectOutputStream, 1
obstacles, management, 1
Octal, 1
ones complement operator, 1

OOP, 1
  analysis and design, 1
  basic characteristics, 1
  basic concepts of object-oriented programming, 1
  protocol, 1
  Simula-67 programming language, 1
  substitutability, 1

operation, atomic, 1

operator, 1
  + and += overloading for String, 1
  +, for String, 1
  == and !=, 1
  binary, 1
  bitwise, 1
  casting, 1
  comma operator, 1, 2
  common pitfalls, 1
  indexing operator [ ], 1
  logical, 1
  logical operators and short-circuiting, 1
  ones-complement, 1
  operator overloading for String, 1
  overloading, 1
  precedence, 1
  precedence mnemonic, 1
  relational, 1
  shift, 1
  unary, 1, 2
  ternary, 1

optimizing, and profiling, 1
optional methods, in the Java 2 containers, 1

OR, 1
  (||), 1

order
  of constructor calls with inheritance, 1
  of initialization, 1, 2, 3

organization, code, 1
OutputStream, 1, 2
OutputStreamWriter, 1, 2
overflow, and primitive types, 1

overloading
  and constructors, 1
  distinguishing overloaded methods, 1
  lack of name hiding during inheritance, 1
  method overloading, 1
  on return values, 1
  operator + and += overloading for String, 1
  operator overloading, 1
  operator overloading for String, 1
  overloading vs. overriding, 1

overriding
  and inner classes, 1
  function, 1
  overloading vs. overriding, 1
  private methods, 1

P

package, 1
  access, and friendly, 1
  and directory structure, 1
  creating unique package names, 1
  default package, 1
  names, capitalization, 1
  package access, and protected, 1
  visibility, access, 1

paintComponent( ), 1, 2
painting on a JPanel in Swing, 1
pair programming, 1
paralysis, analysis, 1
parameter, applet, 1
parameterized type, 1
parseInt( ), 1

pass
  pass by value, 1
  passing a reference into a method, 1

pattern, regular expression, 1
patterns, design, 1, 2, 3
perfect hashing function, 1

performance
  and final, 1
  issues, 1

persistence, 1
  lightweight persistence, 1

PhantomReference, 1
philosophers, dining and threading, 1
pipe, 1
piped streams, 1
PipedInputStream, 1
PipedOutputStream, 1, 2
PipedReader, 1, 2
PipedWriter, 1, 2
planning, software development, 1
Plauger, P.J., 1
pluggable look & feel, 1
Plugin, Java, 1

pointer
  and Java, 1
  Java exclusion of pointers, 1

polymorphism, 1, 2, 3, 4, 5
  and constructors, 1
  behavior of polymorphic methods inside constructors, 1

portability in C, C++ and Java, 1
position, absolute, when laying out Swing components, 1
possessive quantifiers, 1
postcondition, design by contract, 1
precedence, mnemonic operator precedence, 1
precondition, design by contract, 1
preferences, JDK 1.4 API, 1
prerequisites, for this book, 1

primitive
  comparison, 1
  containers of primitives, 1
  data types, and use with operators, 1
  dealing with the immutability of primitive wrapper classes, 1
  final, 1
  final static primitives, 1
  initialization of class fields, 1
  types, 1
  wrappers, 1

printInfo( ), 1
printing arrays, 1
println( ), 1
printStackTrace( ), 1, 2
PrintStream, 1
PrintWriter, 1, 2, 3
priority, thread, 1

private, 1, 2, 3, 4, 5, 6
  illusion of overriding private methods, 1
  inner classes, 1
  interfaces, when nested, 1
  method overriding, 1
  methods, 1

problem space, 1, 2
process, and threading, 1
producer-consumer, threading, 1

profiling
  and optimizing, 1
  JVM interface, 1

programmer, client, 1

programming
  basic concepts of object-oriented programming (OOP), 1
  coding standards, 1
  event-driven programming, 1
  Extreme Programming (XP), 1, 2
  in the large, 1
  maintenance, 1
  multiparadigm, 1
  object-oriented, 1
  pair, 1

progress bar, 1
promotion, to int, 1, 2

property, 1
  bound properties, 1
  constrained properties, 1
  custom property editor, 1
  custom property sheet, 1
  indexed property, 1

PropertyChangeEvent, 1
PropertyDescriptors, 1
ProptertyVetoException, 1

protected, 1, 2, 3, 4, 5
  and package access, 1
  is also package access, 1
  use in clone( ), 1

protocol, 1
prototyping, rapid, 1

public, 1, 2, 3, 4
  and interface, 1
  class, and compilation units, 1

pure
  inheritance, vs. extension, 1
  substitution, 1, 2

PushbackInputStream, 1
PushBackReader, 1
put( ), HashMap, 1
Python, 1, 2
Q

quantifier
  greedy, 1
  possessive, 1
  regular expression, 1
  reluctant, 1

queue, 1, 2
  FIFO, 1

R
RAD (Rapid Application Development), 1
radio button, 1
random number generator, values produced by, 1
random( ), 1
RandomAccessFile, 1, 2, 3, 4
rapid prototyping, 1
re-throwing an exception, 1
reachable objects and garbage collection, 1

read( ), 1
  nio, 1

readDouble( ), 1
Reader, 1, 2, 3
readExternal( ), 1
reading from standard input, 1
readLine( ), 1, 2, 3, 4

readObject( ), 1
  with Serializable , 1

recursion, unintended via toString( ), 1
redirecting standard I/O, 1
refactoring, 1

reference
  assigning objects by copying references, 1
  final, 1
  finding exact type of a base reference, 1
  null, 1
  reference equivalence vs. object equivalence, 1, 2

reference counting garbage collection, 1
Reference, from java.lang.ref, 1
referencing, forward, 1

reflection, 1, 2, 3, 4
  and Beans, 1
  and weak typing, 1
  difference between RTTI and reflection, 1
  example, 1

regex, 1
regular expressions, JDK 1.4, 1
relational operators, 1
reluctant quantifiers, 1
removeActionListener( ), 1, 2
removeXXXListener( ), 1
renameTo( ), 1
reporting errors in book, 1
request, in OOP, 1
requirements analysis, 1
reset( ), 1
responsive user interfaces, 1

resume( ), 1
  and deadlocks, 1

resumption, termination vs. resumption, exception handling, 1

return
  an array, 1
  constructor return value, 1
  overloading on return value, 1

reusability, 1

reuse, 1
  code reuse, 1
  existing class libraries, 1
  reusable code, 1

revision control system, source code, 1
rewind( ), 1
right-shift operator (>>), 1
rollover, 1

RTTI
  and cloning, 1
  cast, 1
  Class object, 1, 2, 3
  ClassCastException, 1
  Constructor class for reflection, 1
  downcast, 1
  Field, 1
  getConstructor( ), 1
  instanceof keyword, 1
  isInstance, 1
  Method, 1
  newInstance( ), 1
  reflection, 1
  reflection, difference between, 1
  run-time type identification, 1
  type-safe downcast, 1

Rumbaugh, James, 1

run-time binding, 1
  polymorphism, 1

run-time type identification
  (RTTI), 1
  misuse, 1
  shape example, 1
  when to use it, 1

Runnable, 1
  interface, 1
  Thread, 1

running a Java program, 1
RuntimeException, 1, 2, 3, 4
rvalue, 1
S
safety, and applet restrictions, 1
scenario, 1
scheduling, 1

scope
  inner class nesting within any arbitrary scope , 1
  inner classes in methods & scopes, 1
  use case, 1

scrolling in Swing, 1

searching
  an array, 1
  sorting and searching Lists, 1

section, critical section and synchronized block, 1
seek( ), 1, 2
semaphore, 1

seminars
  public Java seminars, 1
  training, provided by MindView, Inc., 1

sending a message, 1
separating business logic from UI logic, 1
separation of interface and implementation, 1, 2, 3
SequenceInputStream, 1, 2

Serializable, 1, 2, 3, 4, 5
  readObject( ), 1
  writeObject( ), 1

serialization
  and object storage, 1
  and transient, 1
  controlling the process of serialization, 1
  defaultReadObject( ), 1
  defaultWriteObject( ), 1
  to perform deep copying, 1
  Versioning, 1

ServerSocket, 1
Set, 1, 2, 3, 4
setActionCommand( ), 1
setBorder( ), 1
setContents( ), 1
setErr(PrintStream), 1
setIcon( ), 1
setIn(InputStream), 1
setLayout( ), 1
setMnemonic( ), 1
setOut(PrintStream), 1
setPriority( ), 1
setToolTipText( ), 1
setUp( ), JUnit, 1
shallow copy, 1, 2

shape
  example, 1, 2
  example, and run-time type identification, 1

shift operators, 1
short-circuit, and logical operators, 1
shortcut, keyboard, 1
show( ), 1
shuffle( ), 1
side effect, 1, 2, 3, 4
sign extension, 1
signed applets, 1
signed two’s complement, 1
Simula-67 programming language, 1, 2
sine wave, 1
singleton design pattern, 1
size( ), ArrayList, 1
size, of a HashMap or HashSet, 1
sizeof( ), lack of in Java, 1

sleep( ), 1
  threading, 1

slider, 1
Smalltalk, 1, 2
SMTP, Simple Mail Transfer Protocol, 1
SocketChannel, 1
SoftReference, 1
Software Development Conference, 1
software development methodology, 1
solution space, 1

sorting, 1
  and searching Lists, 1

source code, 1
  copyright notice, 1
  revision control system, 1

South, BorderLayout, 1

space
  name spaces, 1
  problem space, 1
  solution space, 1

specialization, 1

specification
  exception specification, 1, 2
  system specification, 1

specifier
  access specifiers, 1, 2, 3

Stack, 1, 2
standard input, reading from, 1
standards, coding, 1, 2
startup costs, 1
stateChanged( ), 1
statement, mission, 1

static, 1
  and final, 1
  block, 1
  construction clause, 1
  data initialization, 1
  final static primitives, 1
  initialization, 1
  initialization clause, 1
  inner classes, 1
  keyword, 1
  method, 1, 2
  strong type checking, 1, 2
  synchronized static, 1

STL, C++, 1

stop( )
  and deadlocks, 1
  deprecation in Java 2, 1

stream, I/O, 1
StreamTokenizer, 1

String
  automatic type conversion, 1
  class methods, 1
  concatenation with operator +, 1
  immutability, 1
  indexOf( ), 1
  lexicographic vs. alphabetic sorting, 1
  methods, 1
  operator +, 1, 2
  operator + and += overloading, 1
  toString( ), 1, 2

StringBuffer, 1
  methods, 1

StringBufferInputStream, 1
StringReader, 1, 2
StringSelection, 1
StringTokenizer, 1
StringWriter, 1
strong static type checking, 1, 2
struts, in BoxLayout, 1

style
  coding style, 1
  of creating classes, 1

subobject, 1, 2
substitutability, in OOP, 1
substitution principle, 1
subtraction, 1

super, 1
  and inner classes, 1

super keyword, 1
super.clone( ), 1, 2, 3
superclass, 1

suspend( ), 1
  and deadlocks, 1

Swing, 1
  and concurrency, 1
  component examples, 1
  components, using HTML with, 1
  event model, 1, 2

switch keyword, 1

synchronized, 1, 2
  and inheritance, 1
  and wait( ) & notify( ), 1
  block, and critical section, 1
  containers, 1
  deciding what methods to synchronize, 1
  method, and blocking, 1
  static, 1

system clipboard, 1
system specification, 1
System.arraycopy( ), 1

System.err, 1, 2
  redirecting, 1

System.in, 1, 2

System.out, 1
  redirecting, 1

System.out.println( ), 1
systemNodeForPackage( ), preferences API, 1
T
tabbed dialog, 1
table, Swing JTable, 1
table-driven code, and anonymous inner classes, 1
tasks, ant, 1
tearDown( ), JUnit, 1
template method, design pattern, 1, 2, 3
template, in C++, 1
templates, Java generics (equivalent), 1
termination condition, and finalize( ), 1
termination vs. resumption, exception handling, 1
ternary operator, 1

testing
  automated, 1
  automated unit testing, 1
  Extreme Programming (XP), 1
  simple framework, 1
  techniques, 1
  unit testing, 1

Theory of Escalating Commitment, 1
Thinking in C#, 1
Thinking in Enterprise Java , 1
this keyword, 1

Thread, 1
  and Runnable, 1
  blocked, 1
  daemon threads, 1
  dead, 1
  deadlock, 1
  deciding what methods to synchronize, 1
  drawbacks, 1
  getPriority( ), 1
  group, 1
  I/O and threads, blocking, 1
  I/O between, 1
  interrupt( ), 1
  isDaemon( ), 1
  long and double non-atomicity, 1
  new Thread, 1
  notify( ), 1
  notifyAll( ), 1
  performance, 1
  priority, 1
  resume( ), 1
  resume( ), and deadlocks, 1
  run( ), 1
  Runnable, 1
  Runnable interface, 1
  setPriority( ), 1
  sharing limited resources, 1
  sleep( ), 1
  start( ), 1
  states, 1
  stop( ) , deprecation in Java 2, 1
  stop( ), and deadlocks, 1
  suspend( ), 1
  suspend( ), and deadlocks, 1
  synchronized method and blocking, 1
  threads and efficiency, 1
  wait( ), 1, 2
  when to use threads, 1

throw keyword, 1

Throwable, 1
  base class for Exception, 1

throwing an exception, 1
Timer, 1
toArray( ), 1
tool tips, 1
TooManyListenersException, 1, 2
toString( ), 1, 2, 3, 4

training, 1
  and mentoring, 1, 2
  seminars provided by MindView, Inc., 1

Transferable, 1
transferFrom( ), 1
transferTo( ), 1
transient keyword, 1
translation unit, 1
tree, 1
TreeMap, 1, 2
TreeSet, 1, 2
true, 1

try, 1, 2
  try block in exceptions, 1

tryLock( ), file locking, 1
two’s complement, signed, 1

type
  base, 1
  data type equivalence to class, 1
  derived, 1
  finding exact type of a base reference, 1
  parameterized type, 1
  primitive, 1
  primitive data types and use with operators, 1
  type checking and arrays, 1
  type checking, strong static, 1
  type safety in Java, 1
  type-safe downcast in run-time type identification, 1
  weak typing, 1

TYPE field, for primitive class literals, 1
type safe sets of constants, 1
type-conscious ArrayList, 1
typed checking, strong static, 1
U

UML, 1
  indicating composition, 1
  Unified Modeling Language, 1, 2

unary
  minus (-), 1
  operator, 1
  operators, 1
  plus (+), 1

unchecked exceptions, converting from checked, 1

unicast, 1
  unicast events, 1

Unicode, 1
Unified Modeling Language (UML), 1, 2

unit testing, 1
  automated, 1

unmodifiable, making a Collection or Map unmodifiable, 1
unsupported methods, in the Java 2 containers, 1
UnsupportedOperationException, 1

upcasting, 1, 2, 3, 4
  and interface, 1
  inner classes and upcasting, 1

update, CVS, 1
updates of the book, 1

use case, 1
  iteration, 1
  scope, 1

user interface, 1
  responsive, with threading, 1, 2

userNodeForPackage( ), preferences API, 1
V
value, preventing change at run time, 1

variable
  defining a variable, 1
  initialization of method variables, 1
  variable argument lists (unknown quantity and type of arguments), 1

Vector, 1, 2, 3
vector of change, 1, 2
versioning, serialization, 1
versions of Java, 1
visibility, package visibility, 1
Visual BASIC, Microsoft, 1

visual programming, 1
  environments, 1

volatile, 1
W
wait( ), 1, 2
Waldrop, M. Mitchell, 1
WeakHashMap, 1
weakly typed language, 1
WeakReference, 1

Web
  placing an applet inside a Web page, 1
  safety, and applet restrictions, 1

web of objects, 1, 2
Web Start, Java, 1
West, BorderLayout, 1
while, 1
white-box testing, 1
widening conversion, 1
wild-card, 1
windowClosing( ), 1
windowed applications, 1
wrapper, dealing with the immutability of primitive wrapper classes, 1

write( ), 1
  nio, 1

writeBytes( ), 1
writeChars( ), 1
writeDouble( ), 1
writeExternal( ), 1

writeObject( ), 1
  with Serializable, 1

Writer, 1, 2, 3
X
XOR (Exclusive-OR), 1
XP (Extreme Programming), 1
Y
yield( ), threading, 1, 2
Z
zero extension, 1
ZipEntry, 1
ZipInputStream, 1
ZipOutputStream, 1
[

[ ]
  indexing operator [ ], 1

^
^, 1
^=, 1
|
|, 1
|=, 1
||, 1