You are previewing Big Java, 4th Edition.
O'Reilly logo
Big Java, 4th Edition

Book Description

This book introduces programmers to objects at a gradual pace. The syntax boxes are revised to show typical code examples rather than abstract notation. This includes optional example modules using Alice and Greenfoot. The examples feature annotations with dos and don'ts along with cross references to more detailed explanations in the text. New tables show a large number of typical and cautionary examples. New programming and review problems are also presented that ensure a broad coverage of topics. In addition, Java 7 features are included to provide programmers with the most up-to-date information.

Table of Contents

  1. Copyright
  2. PREFACE
    1. New in This Edition
      1. More Help for Beginning Programmers
      2. Annotated Examples
      3. Updated for Java 7
      4. More Opportunities for Practice
    2. A Tour of the Book
    3. A Walkthrough of the Learning Aids
    4. WileyPLUS
      1. For Students
      2. For Instructors
    5. Acknowledgments
  3. 1. Introduction
    1. 1.1. What Is Programming?
    2. 1.2. The Anatomy of a Computer
    3. 1.3. Translating Human-Readable Programs to Machine Code
    4. 1.4. The Java Programming Language
    5. 1.5. The Structure of a Simple Program
    6. 1.6. Compiling and Running a Java Program
    7. 1.7. Errors
    8. 1.8. Algorithms
      1. 1.8.1. Summary of Learning Objectives
      2. 1.8.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 1.8.3. Media Resources
      4. 1.8.4. Review Exercises
      5. 1.8.5. Programming Exercises
      6. 1.8.6. Programming Projects
      7. 1.8.7. Answers to Self-Check Questions
  4. 2. Using Objects
    1. 2.1. Types
    2. 2.2. Variables
    3. 2.3. The Assignment Operator
    4. 2.4. Objects, Classes, and Methods
    5. 2.5. Method Parameters and Return Values
    6. 2.6. Constructing Objects
    7. 2.7. Accessor and Mutator Methods
    8. 2.8. The API Documentation
    9. 2.9. Implementing a Test Program
    10. 2.10. Object References
    11. 2.11. Graphical Applications and Frame Windows
    12. 2.12. Drawing on a Component
    13. 2.13. Ellipses, Lines, Text, and Color
      1. 2.13.1. Ellipses and Circles
      2. 2.13.2. Lines
      3. 2.13.3. Drawing Text
      4. 2.13.4. Colors
      5. 2.13.5. Summary of Learning Objectives
      6. 2.13.6. Classes, Objects, and Methods Introduced in this Chapter
      7. 2.13.7. Media Resources
      8. 2.13.8. Review Exercises
      9. 2.13.9. Programming Exercises
      10. 2.13.10. Programming Projects
      11. 2.13.11. Answers to Self-Check Questions
  5. 3. Implementing Classes
    1. 3.1. Instance Variables
    2. 3.2. Encapsulation
    3. 3.3. Specifying the Public Interface of a Class
    4. 3.4. Commenting the Public Interface
    5. 3.5. Providing the Class Implementation
    6. 3.6. Unit Testing
    7. 3.7. Local Variables
    8. 3.8. Implicit Parameters
    9. 3.9. Shape Classes
      1. 3.9.1. Summary of Learning Objectives
      2. 3.9.2. Media Resources
      3. 3.9.3. Review Exercises
      4. 3.9.4. Programming Exercises
      5. 3.9.5. Programming Projects
      6. 3.9.6. Answers to Self-Check Questions
  6. 4. Fundamental Data Types
    1. 4.1. Number Types
    2. 4.2. Constants
    3. 4.3. Arithmetic Operations and Mathematical Functions
      1. 4.3.1. Arithmetic Operators
      2. 4.3.2. Increment and Decrement
      3. 4.3.3. Integer Division
      4. 4.3.4. Powers and Roots
      5. 4.3.5. Casting and Rounding
    4. 4.4. Calling Static Methods
    5. 4.5. Strings
      1. 4.5.1. The String Class
      2. 4.5.2. Concatenation
      3. 4.5.3. Converting Strings to Numbers
      4. 4.5.4. Substrings
    6. 4.6. Reading Input
      1. 4.6.1. Summary of Learning Objectives
      2. 4.6.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 4.6.3. Media Resources
      4. 4.6.4. Review Exercises
      5. 4.6.5. Programming Exercises
      6. 4.6.6. Programming Projects
      7. 4.6.7. Answers to Self-Check Questions
  7. 5. Decisions
    1. 5.1. The if Statement
    2. 5.2. Comparing Values
      1. 5.2.1. Relational Operators
      2. 5.2.2. Comparing Floating-Point Numbers
      3. 5.2.3. Comparing Strings
      4. 5.2.4. Comparing Objects
      5. 5.2.5. Testing for null
    3. 5.3. Multiple Alternatives
      1. 5.3.1. Sequences of Comparisons
      2. 5.3.2. Nested Branches
    4. 5.4. Using Boolean Expressions
      1. 5.4.1. The boolean Type
      2. 5.4.2. Predicate Methods
      3. 5.4.3. The Boolean Operators
      4. 5.4.4. Using Boolean Variables
    5. 5.5. Code Coverage
      1. 5.5.1. Summary of Learning Objectives
      2. 5.5.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 5.5.3. Media Resources
      4. 5.5.4. Review Exercises
      5. 5.5.5. Programming Exercises
      6. 5.5.6. Programming Projects
      7. 5.5.7. Answers to Self-Check Questions
  8. 6. Iteration
    1. 6.1. while Loops
    2. 6.2. for Loops
    3. 6.3. Common Loop Algorithms
      1. 6.3.1. Computing a Total
      2. 6.3.2. Counting Matches
      3. 6.3.3. Finding the First Match
      4. 6.3.4. Prompting Until a Match is Found
      5. 6.3.5. Comparing Adjacent Values
      6. 6.3.6. Processing Input with Sentinel Values
    4. 6.4. Nested Loops
    5. 6.5. Application: Random Numbers and Simulations
    6. 6.6. Using a Debugger
      1. 6.6.1. Summary of Learning Objectives
      2. 6.6.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 6.6.3. Media Resources
      4. 6.6.4. Review Exercises
      5. 6.6.5. Programming Exercises
      6. 6.6.6. Programming Projects
      7. 6.6.7. Answers to Self-Check Questions
  9. 7. Arrays and Array Lists
    1. 7.1. Arrays
    2. 7.2. Array Lists
    3. 7.3. Wrappers and Auto-boxing
    4. 7.4. The Enhanced for Loop
    5. 7.5. Partially Filled Arrays
    6. 7.6. Common Array Algorithms
      1. 7.6.1. Filling
      2. 7.6.2. Computing Sum and Average Values
      3. 7.6.3. Counting Matches
      4. 7.6.4. Finding the Maximum or Minimum
      5. 7.6.5. Searching for a Value
      6. 7.6.6. Locating the Position of an Element
      7. 7.6.7. Removing an Element
      8. 7.6.8. Inserting an Element
      9. 7.6.9. Copying and Growing Arrays
      10. 7.6.10. Printing Element Separators
    7. 7.7. Regression Testing
    8. 7.8. Two-Dimensional Arrays
      1. 7.8.1. Summary of Learning Objectives
      2. 7.8.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 7.8.3. Media Resources
      4. 7.8.4. Review Exercises
      5. 7.8.5. Programming Exercises
      6. 7.8.6. Programming Projects
      7. 7.8.7. Answers to Self-Check Questions
  10. 8. Designing Classes
    1. 8.1. Discovering Classes
    2. 8.2. Cohesion and Coupling
    3. 8.3. Immutable Classes
    4. 8.4. Side Effects
    5. 8.5. Preconditions and Postconditions
    6. 8.6. Static Methods
    7. 8.7. Static Variables
    8. 8.8. Scope
      1. 8.8.1. Scope of Variables
      2. 8.8.2. Overlapping Scope
    9. 8.9. Packages
      1. 8.9.1. Organizing Related Classes into Packages
      2. 8.9.2. Importing Packages
      3. 8.9.3. Package Names
      4. 8.9.4. Packages and Source Files
    10. 8.10. Unit Test Frameworks
      1. 8.10.1. Summary of Learning Objectives
      2. 8.10.2. Media Resources
      3. 8.10.3. Review Exercises
      4. 8.10.4. Programming Exercises
      5. 8.10.5. Programming Projects
      6. 8.10.6. Answers to Self-Check Questions
  11. 9. Interfaces and Polymorphism
    1. 9.1. Using Interfaces for Algorithm Reuse
    2. 9.2. Converting Between Class and Interface Types
    3. 9.3. Polymorphism
    4. 9.4. Using Interfaces for Callbacks
    5. 9.5. Inner Classes
    6. 9.6. Mock Objects
    7. 9.7. Events, Event Sources, and Event Listeners
    8. 9.8. Using Inner Classes for Listeners
    9. 9.9. Building Applications with Buttons
    10. 9.10. Processing Timer Events
    11. 9.11. Mouse Events
      1. 9.11.1. Summary of Learning Objectives
      2. 9.11.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 9.11.3. Media Resources
      4. 9.11.4. Review Exercises
      5. 9.11.5. Programming Exercises
      6. 9.11.6. Programming Projects
      7. 9.11.7. Answers to Self-Check Questions
  12. 10. Inheritance
    1. 10.1. Inheritance Hierarchies
    2. 10.2. Implementing Subclasses
    3. 10.3. Overriding Methods
    4. 10.4. Subclass Construction
    5. 10.5. Converting Between Subclass and Superclass Types
    6. 10.6. Polymorphism and Inheritance
    7. 10.7. Object: The Cosmic Superclass
      1. 10.7.1. Overriding the toString Method
      2. 10.7.2. Overriding the equals Method
      3. 10.7.3. The clone Method
    8. 10.8. Using Inheritance to Customize Frames
      1. 10.8.1. Summary of Learning Objectives
      2. 10.8.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 10.8.3. Media Resources
      4. 10.8.4. Review Exercises
      5. 10.8.5. Programming Exercises
      6. 10.8.6. Programming Projects
      7. 10.8.7. Answers to Self-Check Questions
  13. 11. Input/Output and Exception Handling
    1. 11.1. Reading and Writing Text Files
    2. 11.2. Reading Text Input
      1. 11.2.1. Reading Words
      2. 11.2.2. Processing Lines
      3. 11.2.3. Reading Numbers
      4. 11.2.4. Reading Characters
    3. 11.3. Throwing Exceptions
    4. 11.4. Checked and Unchecked Exceptions
    5. 11.5. Catching Exceptions
    6. 11.6. The finally Clause
    7. 11.7. Designing Your Own Exception Types
    8. 11.8. Case Study: A Complete Example
      1. 11.8.1. Summary of Learning Objectives
      2. 11.8.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 11.8.3. Media Resources
      4. 11.8.4. Review Exercises
      5. 11.8.5. Programming Exercises
      6. 11.8.6. Programming Projects
      7. 11.8.7. Answers to Self-Check Questions
  14. 12. Object-Oriented Design
    1. 12.1. The Software Life Cycle
    2. 12.2. Discovering Classes
    3. 12.3. Relationships Between Classes
    4. 12.4. Case Study: Printing an Invoice
      1. 12.4.1. Requirements
      2. 12.4.2. CRC Cards
      3. 12.4.3. UML Diagrams
      4. 12.4.4. Method Documentation
      5. 12.4.5. Implementation
    5. 12.5. Case Study: An Automatic Teller Machine
      1. 12.5.1. Requirements
      2. 12.5.2. CRC Cards
      3. 12.5.3. UML Diagrams
      4. 12.5.4. Method Documentation
      5. 12.5.5. Implementation
      6. 12.5.6. Summary of Learning Objectives
      7. 12.5.7. Media Resources
      8. 12.5.8. Review Exercises
      9. 12.5.9. Programming Exercises
      10. 12.5.10. Programming Projects
      11. 12.5.11. Answers to Self-Check Questions
  15. 13. Recursion
    1. 13.1. Triangle Numbers
    2. 13.2. Recursive Helper Methods
    3. 13.3. The Efficiency of Recursion
    4. 13.4. Permutations
    5. 13.5. Mutual Recursions
      1. 13.5.1. Summary of Learning Objectives
      2. 13.5.2. Media Resources
      3. 13.5.3. Review Exercises
      4. 13.5.4. Programming Exercises
      5. 13.5.5. Programming Projects
      6. 13.5.6. Answers to Self-Check Questions
  16. 14. Sorting and Searching
    1. 14.1. Selection Sort
    2. 14.2. Profiling the Selection Sort Algorithm
    3. 14.3. Analyzing the Performance of the Selection Sort Algorithm
    4. 14.4. Merge Sort
    5. 14.5. Analyzing the Merge Sort Algorithm
    6. 14.6. Searching
    7. 14.7. Binary Search
    8. 14.8. Sorting Real Data
      1. 14.8.1. Summary of Learning Objectives
      2. 14.8.2. Classes, Objects, and Methods Introduced in This Chapter
      3. 14.8.3. Media Resources
      4. 14.8.4. Review Exercises
      5. 14.8.5. Programming Exercises
      6. 14.8.6. Programming Projects
      7. 14.8.7. Answers to Self-Check Questions
  17. 15. An Introduction to Data Structures
    1. 15.1. Using Linked Lists
    2. 15.2. Implementing Linked Lists
    3. 15.3. Abstract Data Types
    4. 15.4. Stacks and Queues
      1. 15.4.1. Summary of Learning Objectives
      2. 15.4.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 15.4.3. Media Resources
      4. 15.4.4. Review Exercises
      5. 15.4.5. Programming Exercises
      6. 15.4.6. Programming Projects
      7. 15.4.7. Answers to Self-Check Questions
  18. 16. Advanced Data Structures
    1. 16.1. Sets
    2. 16.2. Maps
    3. 16.3. Hash Tables
    4. 16.4. Computing Hash Codes
    5. 16.5. Binary Search Trees
    6. 16.6. Binary Tree Traversal
    7. 16.7. Priority Queues
    8. 16.8. Heaps
    9. 16.9. The Heapsort Algorithm
      1. 16.9.1. Summary of Learning Objectives
      2. 16.9.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 16.9.3. Media Resources
      4. 16.9.4. Review Exercises
      5. 16.9.5. Programming Exercises
      6. 16.9.6. Programming Projects
      7. 16.9.7. Answers to Self-Check Questions
  19. 17. Generic Programming
    1. 17.1. Generic Classes and Type Parameters
    2. 17.2. Implementing Generic Types
    3. 17.3. Generic Methods
    4. 17.4. Constraining Type Parameters
    5. 17.5. Type Erasure
      1. 17.5.1. Summary of Learning Objectives
      2. 17.5.2. Media Resources
      3. 17.5.3. Review Exercises
      4. 17.5.4. Programming Exercises
      5. 17.5.5. Programming Projects
      6. 17.5.6. Answers to Self-Check Questions
  20. 18. Graphical User Interfaces
    1. 18.1. Processing Text Input
    2. 18.2. Text Areas
    3. 18.3. Layout Management
    4. 18.4. Choices
      1. 18.4.1. Radio Buttons
      2. 18.4.2. Check Boxes
      3. 18.4.3. Combo Boxes
    5. 18.5. Menus
    6. 18.6. Exploring the Swing Documentation
      1. 18.6.1. Summary of Learning Objectives
      2. 18.6.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 18.6.3. Media Resources
      4. 18.6.4. Review Exercises
      5. 18.6.5. Programming Exercises
      6. 18.6.6. Programming Projects
      7. 18.6.7. Answers to Self-Check Questions
  21. 19. Streams and Binary Input/Output
    1. 19.1. Readers, Writers, and Streams
    2. 19.2. Binary Input and Output
    3. 19.3. Random Access
    4. 19.4. Object Streams
      1. 19.4.1. Summary of Learning Objectives
      2. 19.4.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 19.4.3. Media Resources
      4. 19.4.4. Review Exercises
      5. 19.4.5. Programming Exercises
      6. 19.4.6. Programming Projects
      7. 19.4.7. Answers to Self-Check Questions
  22. 20. Multithreading
    1. 20.1. Running Threads
    2. 20.2. Terminating Threads
    3. 20.3. Race Conditions
    4. 20.4. Synchronizing Object Access
    5. 20.5. Avoiding Deadlocks
    6. 20.6. Case Study: Algorithm Animation
      1. 20.6.1. Summary of Learning Objectives
      2. 20.6.2. Media Resources
      3. 20.6.3. Classes, Objects, and Methods Introduced in this Chapter
      4. 20.6.4. Review Exercises
      5. 20.6.5. Programming Exercises
      6. 20.6.6. Programming Projects
      7. 20.6.7. Answers to Self-Check Questions
  23. 21. Internet Networking
    1. 21.1. The Internet Protocol
    2. 21.2. Application Level Protocols
    3. 21.3. A Client Program
    4. 21.4. A Server Program
    5. 21.5. URL Connections
      1. 21.5.1. Summary of Learning Objectives
      2. 21.5.2. Media Resources
      3. 21.5.3. Review Exercises
      4. 21.5.4. Programming Exercises
      5. 21.5.5. Programming Projects
      6. 21.5.6. Answers to Self-Check Questions
  24. 22. Relational Databases
    1. 22.1. Organizing Database Information
      1. 22.1.1. Database Tables
      2. 22.1.2. Linking Tables
      3. 22.1.3. Implementing Multi-Valued Relationships
    2. 22.2. Queries
      1. 22.2.1. Simple Queries
      2. 22.2.2. Selecting Columns
      3. 22.2.3. Selecting Subsets
      4. 22.2.4. Calculations
      5. 22.2.5. Joins
      6. 22.2.6. Updating and Deleting Data
    3. 22.3. Installing a Database
    4. 22.4. Database Programming in Java
      1. 22.4.1. Connecting to the Database
      2. 22.4.2. Executing SQL Statements
      3. 22.4.3. Analyzing Query Results
      4. 22.4.4. Result Set Meta Data
    5. 22.5. Case Study: A Bank Database
      1. 22.5.1. Summary of Learning Objectives
      2. 22.5.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 22.5.3. Media Resources
      4. 22.5.4. Review Exercises
      5. 22.5.5. Programming Exercises
      6. 22.5.6. Programming Projects
      7. 22.5.7. Answers to Self-Check Questions
  25. 23. XML
    1. 23.1. XML Tags and Documents
      1. 23.1.1. Advantages of XML
      2. 23.1.2. Differences Between XML and HTML
      3. 23.1.3. The Structure of an XML Document
    2. 23.2. Parsing XML Documents
    3. 23.3. Creating XML Documents
    4. 23.4. Validating XML Documents
      1. 23.4.1. Document Type Definitions
      2. 23.4.2. Specifying a DTD in an XML Document
      3. 23.4.3. Parsing and Validation
      4. 23.4.4. Summary of Learning Objectives
      5. 23.4.5. Media Resources
      6. 23.4.6. Classes, Objects, and Methods Introduced in this Chapter
      7. 23.4.7. Review Exercises
      8. 23.4.8. Programming Exercises
      9. 23.4.9. Programming Projects
      10. 23.4.10. Answers to Self-Check Questions
  26. 24. Web Applications
    1. 24.1. The Architecture of a Web Application
    2. 24.2. The Architecture of a JSF Application
      1. 24.2.1. JSF Pages
      2. 24.2.2. Managed Beans
      3. 24.2.3. Separation of Presentation and Business Logic
      4. 24.2.4. Deploying a JSF Application
    3. 24.3. JavaBeans Components
    4. 24.4. Navigation Between Pages
    5. 24.5. JSF Components
    6. 24.6. A Three-Tier Application
      1. 24.6.1. Summary of Learning Objectives
      2. 24.6.2. Classes, Objects, and Methods Introduced in this Chapter
      3. 24.6.3. Media Resources
      4. 24.6.4. Review Exercises
      5. 24.6.5. Programming Exercises
      6. 24.6.6. Programming Projects
      7. 24.6.7. Answers to Self-Check Questions
  27. A. The Basic Latin and Latin-1 Subsets of Unicode
  28. B. Java Operator Summary
  29. C. Java Reserved Word Summary
  30. D. The Java Library
    1. D.1. Package java.applet
      1. D.1.1. Class java.applet.Applet
    2. D.2. Package java.awt
      1. D.2.1. Class java.awt.BorderLayout
      2. D.2.2. Class java.awt.Color
      3. D.2.3. Class java.awt.Component
      4. D.2.4. Class java.awt.Container
      5. D.2.5. Class java.awt.Dimension
      6. D.2.6. Class java.awt.FlowLayout
      7. D.2.7. Class java.awt.Font
      8. D.2.8. Class java.awt.Frame
      9. D.2.9. Class java.awt.Graphics
      10. D.2.10. Class java.awt.Graphics2D
      11. D.2.11. Class java.awt.GridLayout
      12. D.2.12. Class java.awt.Rectangle
      13. D.2.13. Interface java.awt.Shape
    3. D.3. Package java.awt.event
      1. D.3.1. Interface java.awt.event.ActionListener
      2. D.3.2. Class java.awt.event.MouseEvent
      3. D.3.3. Interface java.awt.event.MouseListener
    4. D.4. Package java.awt.geom
      1. D.4.1. Class java.awt.geom.Ellipse2D.Double
      2. D.4.2. Class java.awt.geom.Line2D
      3. D.4.3. Class java.awt.geom.Line2D.Double
      4. D.4.4. Class java.awt.geom.Point2D
      5. D.4.5. Class java.awt.geom.Point2D.Double
      6. D.4.6. Class java.awt.geom.RectangularShape
    5. D.5. Package java.io
      1. D.5.1. Class java.io.EOFException
      2. D.5.2. Class java.io.File
      3. D.5.3. Class java.io.FileInputStream
      4. D.5.4. Class java.io.FileNotFoundException
      5. D.5.5. Class java.io.FileOutputStream
      6. D.5.6. Class java.io.InputStream
      7. D.5.7. Class java.io.InputStreamReader
      8. D.5.8. Class java.io.IOException
      9. D.5.9. Class java.io.ObjectInputStream
      10. D.5.10. Class java.io.ObjectOutputStream
      11. D.5.11. Class java.io.OutputStream
      12. D.5.12. Class java.io.PrintStream/Class java.io.PrintWriter
      13. D.5.13. Class java.io.RandomAccessFile
      14. D.5.14. Interface java.io.Serializable
    6. D.6. Package java.lang
      1. D.6.1. Class java.lang.Boolean
      2. D.6.2. Class java.lang.Character
      3. D.6.3. Class java.lang.Class
      4. D.6.4. Interface java.lang.Cloneable
      5. D.6.5. Class java.lang.CloneNotSupportedException
      6. D.6.6. Interface java.lang.Comparable<T>
      7. D.6.7. Class java.lang.Double
      8. D.6.8. Class java.lang.Error
      9. D.6.9. Class java.lang.IllegalArgumentException
      10. D.6.10. Class java.lang.IllegalStateException
      11. D.6.11. Class java.lang.Integer
      12. D.6.12. Class java.lang.InterruptedException
      13. D.6.13. Class java.lang.Math
      14. D.6.14. Class java.lang.NullPointerException
      15. D.6.15. Class java.lang.NumberFormatException
      16. D.6.16. Class java.lang.Object
      17. D.6.17. Interface java.lang.Runnable
      18. D.6.18. Class java.lang.RuntimeException
      19. D.6.19. Class java.lang.String
      20. D.6.20. Class java.lang.System
      21. D.6.21. Class java.lang.Thread
      22. D.6.22. Class java.lang.Throwable
    7. D.7. Package java.math
      1. D.7.1. Class java.math.BigDecimal
      2. D.7.2. Class java.math.BigInteger
    8. D.8. Package java.net
      1. D.8.1. Class java.net.HttpURLConnection
      2. D.8.2. Class java.net.ServerSocket
      3. D.8.3. Class java.net.Socket
      4. D.8.4. Class java.net.URL
      5. D.8.5. Class java.net.URLConnection
    9. D.9. Package java.sql
      1. D.9.1. Interface java.sql.Connection
      2. D.9.2. Class java.sql.DriverManager
      3. D.9.3. Interface java.sql.PreparedStatement
      4. D.9.4. Interface java.sql.ResultSet
      5. D.9.5. Interface java.sql.ResultSetMetaData
      6. D.9.6. Class java.sql.SQLException
      7. D.9.7. Interface java.sql.Statement
    10. D.10. Package java.text
      1. D.10.1. Class java.text.DateFormat
    11. D.11. Package java.util
      1. D.11.1. Class java.util.ArrayList<E>
      2. D.11.2. Class java.util.Arrays
      3. D.11.3. Class java.util.Calendar
      4. D.11.4. Interface java.util.Collection<E>
      5. D.11.5. Class java.util.Collections
      6. D.11.6. Interface java.util.Comparator<T>
      7. D.11.7. Class java.util.Date
      8. D.11.8. Class java.util.EventObject
      9. D.11.9. Class java.util.GregorianCalendar
      10. D.11.10. Class java.util.HashMap<K, V>
      11. D.11.11. Class java.util.HashSet<E>
      12. D.11.12. Class java.util.InputMismatchException
      13. D.11.13. Interface java.util.Iterator<E>
      14. D.11.14. Class java.util.LinkedHashMap<K, V>
      15. D.11.15. Class java.util.LinkedList<E>
      16. D.11.16. Interface java.util.List<E>
      17. D.11.17. Interface java.util.ListIterator<E>
      18. D.11.18. Interface java.util.Map<K, V>
      19. D.11.19. Class java.util.NoSuchElementException
      20. D.11.20. Class java.util.PriorityQueue<E>
      21. D.11.21. Class java.util.Properties
      22. D.11.22. Class java.util.Random
      23. D.11.23. Class java.util.Scanner
      24. D.11.24. Interface java.util.Set<E>
      25. D.11.25. Class java.util.TimeZone
      26. D.11.26. Class java.util.TreeMap<K, V>
      27. D.11.27. Class java.util.TreeSet<E>
    12. D.12. Package java.util.concurrent.locks
      1. D.12.1. Interface java.util.concurrent.locks.Condition
      2. D.12.2. Interface java.util.concurrent.locks.Lock
      3. D.12.3. Class java.util.concurrent.locks.ReentrantLock
    13. D.13. Package java.util.logging
      1. D.13.1. Class java.util.logging.Level
      2. D.13.2. Class java.util.logging.Logger
    14. D.14. Package javax.swing
      1. D.14.1. Class javax.swing.AbstractButton
      2. D.14.2. Class javax.swing.ButtonGroup
      3. D.14.3. Class javax.swing.ImageIcon
      4. D.14.4. Class javax.swing.JButton
      5. D.14.5. Class javax.swing.JCheckBox
      6. D.14.6. Class javax.swing.JComboBox
      7. D.14.7. Class javax.swing.JComponent
      8. D.14.8. Class javax.swing.JFileChooser
      9. D.14.9. Class javax.swing.JFrame
      10. D.14.10. Class javax.swing.JLabel
      11. D.14.11. Class javax.swing.JMenu
      12. D.14.12. Class javax.swing.JMenuBar
      13. D.14.13. Class javax.swing.JMenuItem
      14. D.14.14. Class javax.swing.JOptionPane
      15. D.14.15. Class javax.swing.JPanel
      16. D.14.16. Class javax.swing.JRadioButton
      17. D.14.17. Class javax.swing.JScrollPane
      18. D.14.18. Class javax.swing.JSlider
      19. D.14.19. Class javax.swing.JTextArea
      20. D.14.20. Class javax.swing.JTextField
      21. D.14.21. Class javax.swing.Timer
    15. D.15. Package javax.swing.border
      1. D.15.1. Class javax.swing.border.EtchedBorder
      2. D.15.2. Class javax.swing.border.TitledBorder
    16. D.16. Package javax.swing.event
      1. D.16.1. Class javax.swing.event.ChangeEvent
      2. D.16.2. Interface javax.swing.event.ChangeListener
    17. D.17. Package javax.swing.text
      1. D.17.1. Class javax.swing.text.JTextComponent
    18. D.18. Package javax.xml.parsers
      1. D.18.1. Class javax.xml.parsers.DocumentBuilder
      2. D.18.2. Class javax.xml.parsers.DocumentBuilderFactory
    19. D.19. Package javax.xml.xpath
      1. D.19.1. Interface javax.xml.xpath.XPath
      2. D.19.2. Class javax.xml.xpath.XPathExpressionException
      3. D.19.3. Class javax.xml.xpath.XPathFactory
    20. D.20. Package org.w3c.dom
      1. D.20.1. Interface org.w3c.dom.Document
      2. D.20.2. Interface org.w3c.dom.DOMConfiguration
      3. D.20.3. Interface org.w3c.dom.DOMImplementation
      4. D.20.4. Interface org.w3c.dom.Element
      5. D.20.5. Interface org.w3c.dom.Text
    21. D.21. Package org.w3c.dom.ls
      1. D.21.1. Interface org.w3c.dom.ls.DOMImplementationLS
      2. D.21.2. Interface org.w3c.dom.ls.LSSerializer
  31. E. Java Syntax Summary
    1. E.1. Types
    2. E.2. Variables
    3. E.3. Expressions
    4. E.4. Classes
    5. E.5. Interfaces
    6. E.6. Enumeration Types
    7. E.7. Methods
    8. E.8. Constructors
    9. E.9. Statements
    10. E.10. Exceptions
    11. E.10. Packages
    12. E.11. Generic Types and Methods
    13. E.12. Comments
  32. F. HTML Summary
    1. F.1. A Brief Introduction to HTML
  33. G. Tool Summary
    1. G.1. The Java Compiler
    2. G.2. The Java Virtual Machine Launcher
    3. G.3. The Applet Viewer
    4. G.4. The JAR Tool
  34. H. javadoc Summary
    1. H.1. Setting Documentation Comments in Source
    2. H.2. Generating Documentation from Commented Source
  35. I. Number Systems
    1. I.1. Binary Numbers
    2. I.2. Two's Complement Integers
    3. I.3. IEEE Floating-Point Numbers
    4. I.4. Hexadecimal Numbers
  36. J. Bit and Shift Operations
  37. K. UML Summary
    1. K.1. CRC Cards
    2. K.2. UML Diagrams
  38. L. Java Language Coding Guidelines
    1. L.1. Introduction
    2. L.2. Source Files
    3. L.3. Classes
    4. L.4. Methods
    5. L.5. Variables and Constants
    6. L.6. Control Flow
      1. L.6.1. The if Statement
      2. L.6.2. The for Statement
      3. L.6.3. Nonlinear Control Flow
      4. L.6.4. Exceptions
    7. L.7. Lexical Issues
      1. L.7.1. Naming Conventions
      2. L.7.2. Indentation and White Space
      3. L.7.3. Braces
      4. L.7.4. Unstable Layout
  39. GLOSSARY
  40. ILLUSTRATION CREDITS