You are previewing Big Java Late Objects.
O'Reilly logo
Big Java Late Objects

Book Description

Big Java: Late Objects is a comprehensive introduction to Java and computer programming, which focuses on the principles of programming, software engineering, and effective learning. It is designed for a two-semester first course in programming for computer science students.

Table of Contents

  1. Cover Page
  2. Title Page
  3. Copyright
  4. PREFACE
    1. A Tour of the Book
  5. A Walkthrough of the Learning Aids
    1. WileyPLUS
  6. Acknowledgments
  7. Contents
  8. CHAPTER 1: INTRODUCTION
    1. 1.1 Computer Programs
    2. 1.2 The Anatomy of a Computer
    3. 1.3 The Java Programming Language
    4. 1.4 Becoming Familiar with Your Programming Environment
    5. 1.5 Analyzing Your First Program
    6. 1.6 Errors
    7. 1.7 Problem Solving: Algorithm Design
  9. CHAPTER 2: FUNDAMENTAL DATA TYPES
    1. 2.1 Variables
    2. 2.2 Arithmetic
    3. 2.3 Input and Output
    4. 2.4 Problem Solving: First Do It By Hand
    5. 2.5 Strings
  10. CHAPTER 3: DECISIONS
    1. 3.1 The if Statement
    2. 3.2 Comparing Numbers and Strings
    3. 3.3 Multiple Alternatives
    4. 3.4 Nested Branches
    5. 3.5 Problem Solving: Flowcharts
    6. 3.6 Problem Solving: Test Cases
    7. 3.7 Boolean Variables and Operators
    8. 3.8 Application: Input Validation
  11. CHAPTER 4: LOOPS
    1. 4.1 The while Loop
    2. 4.2 Problem Solving: Hand-Tracing
    3. 4.3 The for Loop
    4. 4.4 The do Loop
    5. 4.5 Application: Processing Sentinel Values
    6. 4.6 Problem Solving: Storyboards
    7. 4.7 Common Loop Algorithms
    8. 4.8 Nested Loops
    9. 4.9 Application: Random Numbers and Simulations
  12. CHAPTER 5: METHODS
    1. 5.1 Methods as Black Boxes
    2. 5.2 Implementing Methods
    3. 5.3 Parameter Passing
    4. 5.4 Return Values
    5. 5.5 Methods Without Return Values
    6. 5.6 Problem Solving: Reusable Methods
    7. 5.7 problem solving: stepwise Refinement
    8. 5.8 Variable Scope
    9. 5.9 Recursive Methods (Optional)
  13. CHAPTER 6: ARRAYS AND ARRAY LISTS
    1. 6.1 Arrays
    2. 6.2 The Enhanced for Loop
    3. 6.3 Common Array Algorithms
    4. 6.4 Using Arrays with Methods
    5. 6.5 Problem Solving: Adapting Algorithms
    6. 6.6 Problem Solving: Discovering Algorithms by Manipulating Physical Objects
    7. 6.7 Two-Dimensional Arrays
    8. 6.8 Array Lists
  14. CHAPTER 7: INPUT/OUTPUT AND EXCEPTION HANDLING
    1. 7.1 Reading and Writing Text Files
    2. 7.2 Text Input and Output
    3. 7.3 Command Line Arguments
    4. 7.4 Exception Handling
    5. 7.5 Application: Handling Input Errors
  15. CHAPTER 8: OBJECTS AND CLASSES
    1. 8.1 Object-Oriented Programming
    2. 8.2 Implementing a Simple Class
    3. 8.3 Specifying the Public Interface of a Class
    4. 8.4 Designing the Data Representation
    5. 8.5 Implementing Instance Methods
    6. 8.6 Constructors
    7. 8.7 Testing a Class
    8. 8.8 Problem Solving: Tracing Objects
    9. 8.9 Problem Solving: Patterns for Object Data
    10. 8.10 Object References
    11. 8.11 Static Variables and Methods
  16. CHAPTER 9: INHERITANCE AND INTERFACES
    1. 9.1 Inheritance Hierarchies
    2. 9.2 Implementing Subclasses
    3. 9.3 Overriding Methods
    4. 9.4 Polymorphism
    5. 9.5 Object: The Cosmic Superclass
    6. 9.6 Interface Types
  17. CHAPTER 10: GRAPHICAL USER INTERFACES
    1. 10.1 Frame Windows
    2. 10.2 Events and Event Handling
    3. 10.3 Processing Text Input
    4. 10.4 Creating Drawings
  18. CHAPTER 11: ADVANCED USER INTERFACES
    1. 11.1 Layout Management
    2. 11.2 Choices
    3. 11.3 Menus
    4. 11.4 Exploring the Swing Documentation
    5. 11.5 Using Timer Events for Animations
    6. 11.6 Mouse Events
  19. CHAPTER 12: OBJECT-ORIENTED DESIGN
    1. 12.1 Classes and Their Responsibilities
    2. 12.2 Relationships Between Classes
    3. 12.3 Application: Printing an Invoice
    4. 12.4 Packages
  20. CHAPTER 13: RECURSION
    1. 13.1 Triangle Numbers Revisited
    2. 13.2 Problem Solving: Thinking Recursively
    3. 13.3 Recursive Helper Methods
    4. 13.4 The Efficiency of Recursion
    5. 13.5 Permutations
    6. 13.6 Mutual Recursion
    7. 13.7 Backtracking
  21. CHAPTER 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 Problem Solving: Estimating the Running Time of an Algorithm
    8. 14.8 Sorting and Searching in the Java library
  22. CHAPTER 15: THE JAVA COLLECTIONS FRAMEWORK
    1. 15.1 An Overview of the Collections Framework
    2. 15.2 Linked Lists
    3. 15.3 Sets
    4. 15.4 Maps
    5. 15.5 Stacks, Queues, and Priority Queues
    6. 15.6 Stack and Queue Applications
  23. CHAPTER 16: BASIC DATA STRUCTURES
    1. 16.1 Implementing Linked Lists
    2. 16.2 Implementing Array Lists
    3. 16.3 Implementing Stacks and Queues
    4. 16.4 Implementing a Hash Table
  24. CHAPTER 17: TREE STRUCTURES
    1. 17.1 Basic Tree Concepts
    2. 17.2 Binary Trees
    3. 17.3 Binary Search Trees
    4. 17.4 Tree Traversal
    5. 17.5 Red-Black Trees
    6. 17.6 Heaps
    7. 17.7 The Heapsort Algorithm
  25. CHAPTER 18: GENERIC CLASSES
    1. 18.1 Generic Classes and Type Parameters
    2. 18.2 Implementing Generic Types
    3. 18.3 Generic Methods
    4. 18.4 Constraining Type Parameters
    5. 18.5 Type Erasure
  26. CHAPTER 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
  27. CHAPTER 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 Application: Algorithm Animation
  28. CHAPTER 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
  29. CHAPTER 22: RELATIONAL DATABASES
    1. 22.1 Organizing Database Information
    2. 22.2 Queries
    3. 22.3 Installing a Database
    4. 22.4 Database Programming in Java
    5. 22.5 Application: Entering an Invoice
  30. CHAPTER 23: XML
    1. 23.1 XML Tags and Documents
    2. 23.2 Parsing XML Documents
    3. 23.3 Creating XML Documents
    4. 23.4 Validating XML Documents
  31. CHAPTER 24: WEB APPLICATIONS
    1. 24.1 The Architecture of a Web Application
    2. 24.2 The Architecture of 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
  32. APPENDIX A: THE BASIC LATIN AND LATIN-1 SUBSETS OF UNICODE
  33. APPENDIX B: JAVA OPERATOR SUMMARY
  34. APPENDIX C: JAVA RESERVED WORD SUMMARY
  35. APPENDIX D: THE JAVA LIBRARY
    1. Package java.awt
    2. Package java.awt.event
    3. Package java.io
    4. Package java.lang
    5. Package java.math
    6. Package java.net
    7. Package java.sql
    8. Package java.text
    9. Package java.util
    10. Package java.util.concurrent.locks
    11. Package java.util.logging
    12. Package javax.swing
    13. Package javax.swing.border
    14. Package javax.swing.event
    15. Package javax.swing.text
    16. Package javax.xml.parsers
    17. Package javax.xml.xpath
    18. Package org.w3c.dom
    19. Package org.w3c.dom.ls
  36. APPENDIX E: JAVA SYNTAX SUMMARY
    1. Types
    2. Variables
    3. Expressions
    4. Classes
    5. Interfaces
    6. Enumeration Types
    7. Methods
    8. Constructors
    9. Statements
    10. Exceptions
    11. Packages
    12. Generic Types and Methods
    13. Comments
  37. APPENDIX F: HTML SUMMARY
    1. A Brief Introduction to HTML
  38. APPENDIX G: TOOL SUMMARY
    1. The Java Compiler
    2. The Java Virtual Machine Launcher
    3. The JAR Tool
  39. APPENDIX H: JAVADOC SUMMARY
    1. Documentation Comments
    2. Generating Documentation from Commented Source
  40. APPENDIX I: NUMBER SYSTEMS
    1. Binary Numbers
    2. Overflow and Roundoff Errors
    3. Two's Complement Integers
    4. IEEE Floating-Point Numbers
    5. Hexadecimal Numbers
  41. APPENDIX J: BIT AND SHIFT OPERATIONS
  42. APPENDIX K: UML SUMMARY
    1. CRC Cards
    2. UML Diagrams
  43. APPENDIX L: JAVA LANGUAGE CODING GUIDELINES
    1. Introduction
    2. Source Files
    3. Classes
    4. Methods
    5. Variables and Constants
    6. Control Flow
    7. Lexical Issues
  44. GLOSSARY
  45. INDEX
  46. ILLUSTRATION CREDITS