Preface. Acknowledgments. 1. Introduction. Recipes.
Algorithms - Being Precise.
Implementing Our Algorithm in Java.
Why Java?
Network Computing and the Web.
Human-Computer Interaction and the GUI.
2. Program Fundamentals. Hello, world! in Java.
Compiling and Running Your Java Program.
Lexical Elements.
Data Types and Variable Declarations.
An Example: String Concatenation.
User Input.
Calling Predefined Methods.
More on print() and println().
Number Types.
Arithmetic Expressions.
Assignment Operators.
The Increment and Decrement Operators.
Precedence and Associativity of Operators
Programming Style.
3. Statements and Control Flow. Expression, Block, and Empty Statements.
Boolean Expressions.
The if Statement.
The if-else Statement.
The while Statement.
The for Statement.
The break and continue Statements.
The switch Statement.
Using the Laws of Boolean Algebra.
Programming Style.
4. Methods: Functional Abstraction. Method Invocation.
Static Method Definitions.
The return Statement.
Scope of Variables.
Top-Down Design.
Problem Solving: Random Numbers.
A Simulation: Probability Calculations.
Invocation and Call-by-Value.
Scope of Variables.
Problem Solving: A Computer Game.
Recursion.
Problem Solving: Mathematical Functions.
Method Overloading.
Programming Style.
5. Arrays. One-Dimensional Arrays.
Passing Arrays to Methods.
Array Assignment.
Finding the Minimum and Maximum of an Array.
A Simple Sorting Method.
Searching an Ordered Array.
Big-Oh: Choosing the Best Algorithm.
Type and Array.
Two-Dimensional Arrays.
An Elementary Simulation: The Game of Life.
Arrays of Non-Primitive Types.
Programming Style.
6. Objects: Data Abstraction. String: Using a Standard Class.
StringBuffer: Using Mutator Methods.
The Elements of a Simple Class.
Access public and private: Data Hiding.
Constructor Methods and Object Creation.
Static Fields and Methods.
Calling Methods-a Recap.
Problem Solving: Making Change.
Accessing Another Object's Private Fields.
Passing Objects: Reference Types.
Scope.
Keyword final and Class Constants.
Arrays of Objects.
Object-Oriented Design.
Programming Style.
7. Inheritance. A Student Is a Person.
Overriding Instance Methods.
The Access Modifiers private and public Revisited.
The Access Modifier protected.
Type Object and Inheritance.
Wrapper Classes.
Abstract Classes.
An Example: Predator-Prey Simulation.
Interfaces.
Multiple Inheritance.
Inheritance and Design.
The Operator insistanceof and Casting Nonprimitive Types.
Programming Style.
8. Graphical User Interfaces: Part I. Hello world! Button.
Listening to Events.
Text and Numerical Input.
Using Several Components.
Drawing with Swing.
The Layout Manager FlowLayout.
A Simple Drawing Program.
Applets.
Programming Style.
9. Graphical User Interfaces: Part II. Arranging Components in a GUI.
Getting a Component to Resize.
Problem Solving: Plotting Data.
The Class Graphics.
Changing the Stroke Used in Drawing.
Adding Menus to your GUI.
Event Listeners and Adapters.
Programming Style.
10. Reading and Writing Files. Types of Files.
Writing Text Files.
Reading Text Files.
Formatting Text Output.
Problem Solving: Encrypting Text Files.
Reading and Writing Binary Files.
Detecting the End of an Input Stream.
Programming Style.
11. Exceptions. Exception Handling with try and catch.
Catching an EOFException.
Abrupt Return from Methods That Throw Exceptions.
Catching Several Different Exceptions.
The finally Clause.
Program Correctness: Throwing an Exception.
RuntimeExceptions and the throws Clause.
Programming Style.
12. Dynamic Data Structures. Self-Referential Structures.
A Linked List Implementation of a Stack.
A Singly Linked List.
More Operations on Lists.
A Generic Stack.
An Example: Polish Notation and Stack Evaluation.
Queues.
Iterators.
Iterators and the Interface Iterator.
Deleting Objects.
Packages.
Programming Style.
13. Concurrent Programming with Java Threads. Implicit Threads from AWT.
Creating Threads.
Communicating between Two Threads.
Synchronizing Two Threads.
Passing Messages to Another Computer.
A MultiThreaded Server.
More About the Methods sleep(), wait(), and notify().
Programming Style.
Appendix A. Getting Down to the Bits. Integer Binary Representation.
Floating Point Representations.
Manipulating Bits.
Appendix B. Reference Tables. Operator Precedence Table.
The Standard Java Math Functions.
Appendix C. The Text I/O Package tio. The Class tio.Readinput.
The Class tio.FormattedWriter.
The Class tio.ReadException.
The Class tio.Console.
The Class tio.PrintFileWriter
Appendix D. Summary of Selected Swing Components. The Class JButton.
The Class JComboBox.
The Class JList
The Class JLabel.
The Class JTextField.
The Class JTextArea.
The Class JPanel.
The Class JScrollPane.
Index.