Preface Part I: Core java APIs Chapter 1 -- Java Basics Hello World FizzBuzz The Fibonacci Series Using Command-Line Arguments Echo in Reverse FizzBuzz Switched Computing Factorials Recursive Factorials Caching Factorials Computing Big Factorials Handling Exceptions Interactive Input Using a StringBuffer Sorting Numbers Computing Primes Exercises Chapter 2 -- Objects, Classes, and Interfaces A Rectangle Class Testing the Rect Class A Rect Subclass Another Subclass Complex Numbers Computing Pseudo-Random Numbers Computing Statistics A Linked List Class Advanced Sorting Exercises Chapter 3 -- Input/Output Files and Streams Working with Files Copying File Contents Reading and Displaying Text Files Listing Directory and File Information Compressing Files and Directories Filtering Character Streams Filtering Lines of Text A Custom HTML Output Stream Exercises Chapter 4 -- Threads Thread Basics Threads and Thread Groups Deadlock Timers Exercises Chapter 5 -- Networking Downloading the Contents of a URL Using a URLConnection Sending Email Through a URLConnection Connecting to a Web Server A Simple Web Server A Proxy Server Networking with Applets A Generic Client A Generic Multithreaded Server A Multithreaded Proxy Server Sending Datagrams Receiving Datagrams Exercises Chapter 6 -- Security and Cryptography Running Untrusted Code Loading Untrusted Code Message Digests and Digital Signatures Cryptography Exercises Chapter 7 -- Internationalization A Word About Locales Unicode Character Encodings Handling Local Customs Localizing User-Visible Messages Formatted Messages Exercises Chapter 8 -- Reflection Obtaining Class and Member Information Invoking a Named Method Exercises Chapter 9 -- Object Serialization Simple Serialization Custom Serialization Externalizable Classes Serialization and Class Versioning Serialized Applets Exercises Part II: Graphics and GUIs Chapter 10 -- Graphical User Interfaces Components Containers Layout Management Event Handling A Complete GUI Actions and Reflection Custom Dialogs Displaying Tables Displaying Trees A Simple Web Browser Describing GUIs with Properties Themes and the Metal Look-and-Feel Custom Components Exercises Chapter 11 -- Graphics Graphics Before Java 1.2 The Java 2D API Drawing and Filling Shapes Transforms Line Styles with BasicStroke Stroking Lines Filling Shapes with Paint Antialiasing Combining Colors with AlphaComposite Image Processing A Custom Shape Custom Strokes Custom Paint Advanced Animation Displaying Graphics Examples Exercises Chapter 12 -- Printing Printing with the Java 1.1 API Printing with the Java 1.2 API Printing Multipage Text Documents Printing Swing Documents Exercises Chapter 13 -- Data Transfer Data Transfer Architecture Simple Copy-and-Paste A Transferable Data Type Cutting and Pasting Scribbles Dragging and Dropping Scribbles Exercises Chapter 14 -- JavaBeans Bean Basics A Simple Bean A More Complex Bean Custom Events Specifying Bean Information Defining a Simple Property Editor Defining a Complex Property Editor Defining a Bean Customizer Exercises Chapter 15 -- Applets Introduction to Applets A First Applet A Clock Applet Applets and the Java 1.0 Event Model Java 1.0 Event Details Reading Applet Parameters Images and Sounds JAR Files Exercises Part III: Enterprise Java Chapter 16 -- Remote Method Invocation Remote Banking A Bank Server A Multiuser Domain Remote MUD Interfaces The MUD Server The MudPlace Class The MudPerson Class A MUD Client Advanced RMI Exercises Chapter 17 -- Database Access with SQL Accessing a Database Using Database Metadata Building a Database Using the API Database Atomic Transactions Exercises Chapter 18 -- Servlets and JSP Servlet Setup A Hello World Servlet Servlet Initialization and Persistence: A Counter Servlet Database Access with Servlets A Login Screen with JSP Request Forwarding JSP Pages and JavaBeans Ending a User Session Custom Tags Deploying a Web Application Exercises Chapter 19 -- XML Parsing with JAXP and SAX 1 Parsing with SAX 2 Parsing and Manipulating with JAXP and DOM Traversing a DOM Tree Traversing a Document with DOM Level 2 The JDOM API Exercises Chapter 20 -- Example Index Index