1. Introduction to Computers, the Internet and the Web Introduction. What Is a Computer? Computer Organization. Evolution of Operating Systems. Personal, Distributed and Client/Server Computing. Machine Languages, Assembly Languages and High-Level Languages. History of C++. History of Java. Java Class Libraries. Other High-level Languages. Structured Programming. The Internet and the World Wide Web. Basics of a Typical Java Environment. General Notes about Java and This Book. A Tour of the Book.
2. Introduction to Java Applications. Introduction. A Simple Program: Printing a Line of Text. Another Java Application: Adding Integers. Memory Concepts. Arithmetic. Decision Making: Equality and Relational Operators.
3. Introduction to Java Applets. Introduction. Thinking About Objects. Sample Applets from the Java 2 Software Development Kit. A Simple Java Applet: Drawing a String. Two More Simple Applets: Drawing Strings and Lines. Another Java Applet: Adding Integers. Java Applet Internet and World Wide Web Resources.
4. Control Structures: Part 1. Introduction. Algorithms. Pseudocode. Control Structures. The
if Selection Structure. The
if/else Selection Structure. The
While Repetition Structure. Formulating Algorithms: Case Study 1 (Counter-Controlled Repetition). Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 2 (Sentinel-Controlled Repetition). Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 3 (Nested Control Structures). Assignment Operators. Increment and Decrement Operators. Primitive Data Types.
5. Control Structures: Part 2. Introduction. Essentials of Counter-Controlled Repetition. The
for Repetition Structure. Examples Using the
for Structure. The
switch Multiple-Selection Structure. The
Do/While Repetition Structure. The
break and
continue Statements. The Labeled
break and
continue Statements. Logical Operators. Structured Programming Summary.
6. Methods. Introduction. Program Modules in Java.
Math Class Methods. Methods. Method Definitions. Java API Packages. Random Number Generation. Example: A Game of Chance. Duration of Identifiers. Scope Rules. Recursion. Example Using Recursion: The Fibonacci Series. Recursion vs. Iteration. Method Overloading. Methods of Class
JApplet.
7. Arrays. Introduction. Arrays. Declaring and Allocating Arrays. Examples Using Arrays. References and Reference Parameters. Passing Arrays to Methods. Sorting Arrays. Searching Arrays: Linear Search and Binary Search. Multiple-Subscripted Arrays.
8. Object-Based Programming. Introduction. Implementing a Time Abstract Data Type with a Class. Class Scope. Controlling Access to Members. Creating Packages. Initializing Class Objects: Constructors. Using Overloaded Constructors. Using
Set and
Get Methods. Software Reusability. Final Instance Variables. Composition: Objects as Instance Variables of Other Classes. Package Access. Using the
This Reference. Finalizers. Static Class Members. Data Abstraction and Information Hiding.
9. Object-Oriented Programming. Introduction. Superclasses and Subclasses.
Protected Members. Relationship between Superclass Objects and Subclass Objects. Constructors and Finalizers in Subclasses. Implicit Subclass-Object-to-Superclass-Object Conversion. Software Engineering with Inheritance. Composition vs. Inheritance. Case Study: Point, Circle, Cylinder. Introduction to Polymorphism. Type Fields and
Switch Statements. Dynamic Method Binding.
Final Methods and Classes. Abstract Superclasses and Concrete Classes. Polymorphism Examples. Case Study: A Payroll System Using Polymorphism. New Classes and Dynamic Binding. Case Study: Inheriting Interface and Implementation. Case Study: Creating and Using Interfaces. Inner Class Definitions. Notes on Inner Class Definitions. Type-Wrapper Classes for Primitive Types.
10. Strings and Characters. Introduction. Fundamentals of Characters and Strings.
String Constructors.
String Methods
Length, charAt and
getChars. Comparing
Strings.
String Method
hashCode. Locating Characters and Substrings in
Strings. Extracting Substrings from
Strings. Concatenating
Strings. Miscellaneous
String Methods. Using
String Method
valueOf.
String Method
Intern.
StringBuffer Class.
StringBuffer Constructors.
StringBuffer Methods
Length,
Capacity. setLength and
ensureCapacity.
StringBuffer Methods
charAt,
setCharAt,
getChars and
Reverse.
StringBuffer Append Methods.
StringBuffer Insertion and Deletion Methods. Character Class Examples. Class
StringTokenizer. A Card Shuffling and Dealing Simulation.
11. Graphics and Java2D. Introduction. Graphics Contexts and Graphics Objects. Color Control. Font Control. Drawing Lines, Rectangles and Ovals. Drawing Arcs. Drawing Polygons and Polylines. The Java2D API. Java2D Shapes.
12. Basic Graphical User Interface Components. Introduction. Swing Overview.
Jlabel. Event Handling Model.
JtextField and
JpasswordField.
Jbutton.
JcheckBox and
JradioButton.
JcomboBox.
Jlist. Multiple-Selection Lists. Mouse Event Handling. Adapter Classes. Keyboard Event Handling. Layout Managers. Panels.
13. Advanced Graphical User Interface Components. Introduction.
JtextArea. Creating a Customized Subclass of
Jpanel. Creating a Self-Contained Subclass of
Jpanel.
Jslider. Windows. Designing Programs that Execute as Applets or Applications. Using Menus with Frames. Using
JpopupMenus. Pluggable Look-and-Feel. Using
JdesktopPane and
JinternalFrame. Layout Managers.
BoxLayout Layout Manager.
CardLayout Layout Manager.
GridBagLayout Layout Manager.
GridBagConstraints Constants
RELATIVE and
REMAINDER.
14. Exception Handling. Introduction. When Exception Handling Should Be Used. Other Error Handling Techniques. The Basics of Java Exception Handling. An Exception Handling Example: Divide by Zero. Try Blocks. Throwing an Exception. Catching an Exception. Rethrowing an Exception. Throws Clause. Constructors, Finalizers and Exception Handling. Exceptions and Inheritance.
Finally Block. Using
printStackTrace and
getMessage.
15. Multithreading. Introduction. Class
Thread: An Overview of the
Thread Methods. Thread States: Life Cycle of a Thread. Thread Priorities and Thread Scheduling. Thread Synchronization. Producer/Consumer Relationship without Thread Synchronization. Producer/Consumer Relationship with Thread Synchronization. Producer/Consumer Relationship: The Circular Buffer. Daemon Threads.
Runnable Interface. Thread Groups.
16. Multimedia: Images, Animation, Audio and Video. Introduction. Downloading the Java Media Framework. Loading, Displaying and Scaling Images. Loading and Playing Audio Clips. The Java Media Player. Animating a Series of Images. Animation Issues. Customizing Applets via the HTML
param Tag. Image Maps. Java Plug-In. Internet and World Wide Web Resources.
17. Files and Streams. Introduction. Data Hierarchy. Files and Streams. Creating a Sequential-Access File. Reading Data from a Sequential-Access File. Updating Sequential-Access Files. Random-Access Files. Creating a Random-Access File. Writing Data Randomly to a Random-Access File. Reading Data Sequentially from a Random-Access File. Example: A Transaction-Processing Program. Class
File.
18. Java Database Connectivity (JDBC). Introduction. Database Systems. Relational Database Model. Relational Database Overview: The
Books.mdb Database. Structured Query Language. A First Example. Reading, Inserting, and Updating a Microsoft Access database. Transaction Processing.
19. Servlets. Introduction. Overview of Servlet Technology. Downloading the Java Servlet Development Kit. Handling HTTP GET Requests. Handling HTTP POST Requests. Session Tracking. Multitier Applications: Using JDBC from a Servlet. Electronic Commerce. Servlet Internet and World Wide Web Resources.
20. Remote Method Invocation (RMI). Introduction. Case Study: Creating a Distributed System with RMI. Defining the Remote Interface. Implementing the Remote Interface. Define the Client. Compile and Execute the Server and the Client.
21. Networking. Introduction. Manipulating URLs. Reading a File on a Web Server. Establishing a Simple Server (Using Stream Sockets). Establishing a Simple Client (Using Stream Sockets). Client/Server Interaction with Stream Socket Connections. Connectionless Client/Server Interaction with Datagrams. Client/Server Tic-Tac-Toe Using a Multithreaded Server. Security and the Network.
22. Data Structures. Introduction. Self-Referential Classes. Dynamic Memory Allocation. Linked Lists. Stacks. Queues. Trees.
23. Java Utilities Package and Bit Manipulation. Introduction.
Vector Class and
Enumeratio Interface.
Stack Class.
Dictionary Class.
Hashtable Class.
Properties Class.
Random Class. Bit Manipulation and the Bitwise Operators.
BitSet Class.
24. Collections. Introduction. Overview. Class
Arrays. Interface
Collection and Class
Collections. Lists. Algorithms. Sets. Maps. Synchronization Wrappers. Unmodifiable Wrappers. Abstract Implementations.
25. JavaBeans. Introduction.
BeanBox Overview. Preparing a Class to Be a JavaBean. Creating a JavaBean: Java Archive Files and the
jar Utility. Adding Beans to the BeanBox. Connecting Beans with Events in the BeanBox. Adding Properties to a JavaBean. Creating a JavaBean with a Bound Property. Specifying the
BeanInfo Class for a JavaBean. JavaBeans World Wide Web Resources.
Appendix A: Demos. Introduction. The Sites.
Appendix B: Java Resources. Introduction. Resources. Products. FAQs. Tutorials. Magazines. Java Applets. Multimedia. Servlets. JavaBeans. Java CORBA. Newsgroups.
Appendix C: Operator Precedence Chart. Appendix D: ASCII Character Set. Appendix E: Number Systems. Introduction. Abbreviating Binary Numbers as Octal Numbers and Hexadecimal Numbers. Converting Octal Numbers and Hexadecimal Numbers to Binary Numbers. Converting from Binary, Octal, or Hexadecimal to Decimal. Converting from Decimal to Binary, Octal, or Hexadecimal. Negative Binary Numbers: Two's Complement Notation.
Appendix F: Object-Oriented Elevator Simulator. Introduction. Problem Statement. Elevator Laboratory Assignment 1. Elevator Laboratory Assignment 2. Elevator Laboratory Assignment 3. Elevator Laboratory Assignment 4. Elevator Laboratory Assignment 5. Elevator Laboratory Assignment 6. Elevator Laboratory Assignment 7. Elevator Laboratory Assignment 8. Elevator Laboratory Assignment 9. Elevator Laboratory Assignment 10. Elevator Laboratory Assignment 11. Elevator Laboratory Assignment 12. Design Review Questions. Recommended Modifications.
Appendix G: Creating HTML Documentation with javadoc. Introduction. Documentation Comments. Documenting Java Source Code.
javadoc. Files Produced by
javadoc.
Appendix H: Enterprise JavaBeans (EJB) Web Resources. Introduction. Tutorials. Demos. Resources. Developers. Specifications. Frequently Asked Questions (FAQs). Magazines.
Appendix I: Jini Web Resources. Introduction. Tutorials. Resources. Demos. Specifications. FAQs. Magazines.
Bibliography. Index.