Preface |
The Genius of Java / Chapter 1: |
Simple Types and Objects: The Right Balance |
Memory Management Through Garbage Collection |
A Wonderfully Simple Multithreading Model |
Fully Integrated Exceptions |
Streamlined Support for Polymorphism |
Portability and Security Through Bytecode |
The Richness of the Java API |
The Applet |
The Continuing Revolution |
A Recursive-Descent Expression Parser / Chapter 2: |
Expressions |
Parsing Expressions: The Problem |
Parsing an Expression |
Dissecting an Expression |
A Simple Expression Parser |
Understanding the Parser |
Adding Variables to the Parser |
Syntax Checking in a Recursive-Descent Parser |
A Calculator Applet |
Some Things to Try |
Implementing Language Interpreters in Java / Chapter 3: |
What Computer Language to Interpret? |
An Overview of the Interpreter |
The Small BASIC Interpreter |
The Small BASIC Expression Parser |
Small BASIC Expressions |
Small BASIC Tokens |
The Interpreter |
The InterpreterException Class |
The SBasic Constructor |
The Keywords |
The run() Method |
The sbInterp() Method |
Assignment |
The PRINT Statement |
The INPUT Statement |
The GOTO Statement |
The IF Statement |
The FOR Loop |
The GOSUB |
The END Statement |
Using Small BASIC |
More Small BASIC Sample Programs |
Enhancing and Expanding the Interpreter |
Creating Your Own Computer Language |
Creating a Download Manager in Java / Chapter 4: |
Understanding Internet Downloads |
An Overview of the Download Manager |
The Download Class |
The Download Variables |
The Download Constructor |
The download() Method |
The stateChanged() Method |
Action and Accessor Methods |
The ProgressRenderer Class |
The DownloadsTableModel Class |
The addDownload() Method |
The dearDownload() Method |
The getColumnClass() Method |
The getValueAt() Method |
The update() Method |
The DownloadManager Class |
The DownloadManager Variables |
The DownloadManager Constructor |
The verifyUrl() Method |
The tableSelectionChanged() Method |
The updateButtons() Method |
Handling Action Events |
Compiling and Running the Download Manager |
Enhancing the Download Manager |
Implementing an E-mail Client in Java / Chapter 5: |
E-mail Behind the Scenes |
POP3 |
IMAP |
SMTP |
The General Procedure for Sending and Receiving E-mail |
The JavaMail API |
An Overview of Using JavaMail |
A Simple E-mail Client |
The ConnectDialog Class |
The DownloadingDialog Class |
The MessageDialog Class |
The MessagesTableModel Class |
The EmailClient Class |
Compiling and Running the E-mail Client |
Expanding Beyond the Basic E-mail Client |
Crawling the Web with Java / Chapter 6: |
Fundamentals of a Web Crawler |
Adhering to the Robot Protocol |
An Overview of the Search Crawler |
The SearchCrawler Class |
The SearchCrawler Variables |
The SearchCrawler Constructor |
The actionSearch() Method |
The search() Method |
The showError() Method |
The updateStats() Method |
The addMatch() Method |
The isRobotAllowed() Method |
The downloadPage() Method |
The removeWwwFromUrl() Method |
The retrieveLinks() Method |
The searchStringMatches() Method |
The crawl() Method |
Compiling and Running the Search Web Crawler |
Web Crawler Ideas |
Rendering HTML with Java / Chapter 7: |
Rendering HTML with JEditorPane |
Handling Hyperlink Events |
Creating a Mini Web Browser |
The MiniBrowser Class |
The MiniBrowser Variables |
The MiniBrowser Constructor |
The actionBack() Method |
The actionForward() Method |
The actionGo() Method |
The showPage() Method |
The hyperlinkUpdate() Method |
Compiling and Running the Mini Web Browser |
HTML Renderer Possibilities |
Statistics, Graphing, and Java / Chapter 8: |
Samples, Populations, Distributions, and Variables |
The Basic Statistics |
The Mean |
The Median |
The Mode |
Variance and Standard Deviation |
The Regression Equation |
The Correlation Coefficient |
The Entire Stats Class |
Graphing Data |
Scaling Data |
The Graphs Class |
The Graphs final and Instance Variables |
The Graphs Constructor |
The paint() method |
The bargraph() Method |
The scatter() Method |
The regplot() Method |
A Statistics Application |
The StatsWin Constructor |
The itemStateChanged() Handler |
The actionPerformed() Method |
The shutdown() Method |
The createMenu() Method |
The DataWin Class |
Putting Together the Pieces |
Creating a Simple Statistical Applet |
Financial Applets and Servlets / Chapter 9: |
Finding the Payments for a Loan |
The RegPay Fields |
The init() Method |
The paint() Method |
The compute() Method |
Finding the Future Value of an Investment |
Finding the Initial Investment Required to Achieve a Future Value |
Finding the Initial Investment Needed for a Desired Annuity |
Finding the Maximum Annuity for a Given Investment |
Finding the Remaining Balance on a Loan |
Creating Financial Servlets |
Using Tomcat |
Converting the RegPay Applet into a Servlet |
The RegPayS Servlet |
Al-Based Problem Solving / Chapter 10: |
Representation and Terminology |
Combinatorial Explosions |
Search Techniques |
Evaluating a Search |
The Problem |
A Graphic Representation |
The FlightInfo Class |
The Depth-First Search |
An Analysis of the Depth-First Search |
The Breadth-First Search |
An Analysis of the Breadth-First Search |
Adding Heuristics |
The Hill-Climbing Search |
An Analysis of Hill Climbing |
The Least-Cost Search |
An Analysis of the Least-Cost Search |
Finding Multiple Solutions |
Path Removal |
Node Removal |
Finding the "Optimal" Solution |
Back to the Lost Keys |
Index |
Preface |
The Genius of Java / Chapter 1: |
Simple Types and Objects: The Right Balance |