Test bank for Big Java: Early Objects 6th Edition
by HorstmannFull version at:
https://testbankbell.com/product/test-bank-for-big-java-early-objects-6th-edition-byhorstmann/
Description:
Cay Horstmann's sixth edition of Big Java, Early Objects provides an approachable introduction to fundamental programming techniques and design skills, helping students master basic concepts and become competent coders. Updates for the Java 8 software release and additional visual design elements make this student-friendly text even more engaging. The text is known for its realistic programming examples, great quantity and variety of homework assignments, and programming exercises that build student problem-solving abilities. This edition now includes problem solving sections, more example code online, and exercise from Science and Business.
ISBN-10 : 1119056446
ISBN-13 : 978-1119056447
Table of contents:
Title Page
Getting the Most from Big Java, Early Objects, 6e About the InterActivities
Source Code
Report a Problem
New to this Edition
A Tour of the Book Content Overview
List of Features
Walkthrough of the Learning Aids
Acknowledgments
Quick Reference
1. Introduction
1.1 Computer Programs
InterActivities
1.2 The Anatomy of a Computer InterActivities
Computing & Society 1.1 Computers Are Everywhere
1.3 The Java Programming Language InterActivities
1.4 Becoming Familiar with Your Programming Environment InterActivities
Programming Tip 1.1
Backup Copies
1.5 Analyzing Your First Program
Syntax 1.1 Java Program
InterActivities
More InterActivities
Common Error 1.1
Omitting Semicolons
1.6 Errors
InterActivities
Common Error 1.2
Misspelling Words
1.7 Problem Solving: Algorithm Design
1.7.1 The Algorithm Concept
1.7.2 An Algorithm for Solving an Investment Problem
1.7.3 Pseudocode
1.7.4 From Algorithms to Programs
InterActivities
How To 1.1
Describing an Algorithm with Pseudocode
Worked Example 1.1
Writing an Algorithm for Tiling a Floor
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
2. Using Objects
2.1 Objects and Classes
2.1.1 Using Objects
2.1.2 Classes
InterActivities
2.2 Variables
2.2.1 Variable Declarations
Syntax 2.1 Variable Declaration InterActivities
2.2.2 Types InterActivities
2.2.3 Names
InterActivities
2.2.4 Comments InterActivities
2.2.5 Assignment
Syntax 2.2 Assignment
InterActivities
More InterActivities
Common Error 2.1
Using Undeclared or Uninitialized Variables
Common Error 2.2
Confusing Variable Declarations and Assignment Statements
Programming Tip 2.1
Choose Descriptive Variable Names
2.3 Calling Methods
2.3.1 The Public Interface of a Class
2.3.2 Method Arguments
2.3.3 Return Values
2.3.4 Method Declarations
InterActivities
Programming Tip 2.2
Learn By Trying
2.4 Constructing Objects
Syntax 2.3 Object Construction
InterActivities
Common Error 2.3
Trying to Invoke a Constructor Like a Method
2.5 Accessor and Mutator Methods
InterActivities
2.6 The API Documentation
2.6.1 Browsing the API Documentation
2.6.2 Packages
Syntax 2.4 Importing a Class from a Package InterActivities
Programming Tip 2.3
Don’t Memorize Use Online Help
2.7 Implementing a Test Program (Testing Track)
InterActivities
More InterActivities
Special Topic 2.1
Testing Classes in an Interactive Environment
Worked Example 2.1
How Many Days Have You Been Alive?
Worked Example 2.2
Working with Pictures
2.8 Object References
InterActivities
Computing & Society 2.1 Computer Monopoly
2.9 Graphical Applications (Graphics Track)
2.9.1 Frame Windows
2.9.2 Drawing on a Component
2.9.3 Displaying a Component in a Frame InterActivities
More InterActivities
2.10 Ellipses, Lines, Text, and Color (Graphics Track)
2.10.1 Ellipses and Circles
2.10.2 Lines
2.10.3 Drawing Text
2.10.4 Colors
InterActivities
More InterActivities
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
3. Implementing Classes
3.1 Instance Variables and Encapsulation
3.1.1 Instance Variables
Syntax 3.1 Instance Variable Declaration
3.1.2 The Methods of the Counter Class
3.1.3 Encapsulation
InterActivities
3.2 Specifying the Public Interface of a Class
3.2.1 Specifying Methods
3.2.2 Specifying Constructors
Syntax 3.2 Class Declaration
3.2.3 Using the Public Interface
3.2.4 Commenting the Public Interface
InterActivities
Common Error 3.1
Declaring a Constructor as void
Programming Tip 3.1
The javadoc Utility
3.3 Providing the Class Implementation
3.3.1 Providing Instance Variables
3.3.2 Providing Constructors
3.3.3 Providing Methods
InterActivities
More InterActivities
Common Error 3.2
Ignoring Parameter Variables
How To 3.1
Implementing a Class
Worked Example 3.1
Making a Simple Menu
3.4 Unit Testing (Testing Track)
InterActivities
Computing & Society 3.1 Electronic Voting Machines
3.5 Problem Solving: Tracing Objects
InterActivities
3.6 Local Variables
InterActivities
Common Error 3.3
Duplicating Instance Variables in Local Variables
Common Error 3.4
Providing Unnecessary Instance Variables
Common Error 3.5
Forgetting to Initialize Object References in a Constructor
3.7 The this Reference
InterActivities
Special Topic 3.1
Calling One Constructor from Another
3.8 Shape Classes (Graphics Track)
InterActivities
More InterActivities
How To 3.2
Drawing Graphical Shapes
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
4. Fundamental Data Types
4.1 Numbers
4.1.1 Number Types
4.1.2 Constants
Syntax 4.1 Constant Declaration
InterActivities
Special Topic 4.1
Big Numbers
Programming Tip 4.1
Do Not Use Magic Numbers
4.2 Arithmetic
4.2.1 Arithmetic Operators
4.2.2 Increment and Decrement
4.2.3 Integer Division and Remainder
4.2.4 Powers and Roots
4.2.5 Converting Floating-Point Numbers to Integers
Syntax 4.2 Cast InterActivities
More InterActivities
Common Error 4.1
Unintended Integer Division
Common Error 4.2
Unbalanced Parentheses
Programming Tip 4.2
Spaces in Expressions
Java 8 Note 4.1
Avoiding Negative Remainders
Special Topic 4.2
Combining Assignment and Arithmetic
Special Topic 4.3
Instance Methods and Static Methods
Computing & Society 4.1 The Pentium Floating-Point Bug
4.3 Input and Output
4.3.1 Reading Input
Syntax 4.3 Input Statement
4.3.2 Formatted Output
InterActivities
More InterActivities
How To 4.1
Carrying Out Computations
Worked Example 4.1
Computing the Volume and Surface Area of a Pyramid
4.4 Problem Solving: First Do It By Hand
InterActivities
More InterActivities
Worked Example 4.2
Computing Travel Time
4.5 Strings
4.5.1 The String Type
4.5.2 Concatenation
4.5.3 String Input
4.5.4 Escape Sequences
4.5.5 Strings and Characters
4.5.6 Substrings
InterActivities
More InterActivities
Programming Tip 4.3
Reading Exception Reports
Special Topic 4.4
Using Dialog Boxes for Input and Output
Computing & Society 4.2 International Alphabets and Unicode
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
5. Decisions
5.1 The if Statement
Syntax 5.1 if Statement
InterActivities
More InterActivities
Programming Tip 5.1
Brace Layout
Programming Tip 5.2
Always Use Braces
Common Error 5.1
A Semicolon After the if Condition
Programming Tip 5.3
Tabs
Special Topic 5.1
The Conditional Operator
Programming Tip 5.4
Avoid Duplication in Branches
5.2 Comparing Values
5.2.1 Relational Operators
Syntax 5.2 Comparisons
5.2.2 Comparing Floating-Point Numbers
5.2.3 Comparing Strings
5.2.4 Comparing Objects
5.2.5 Testing for null
InterActivities
More InterActivities
Common Error 5.2
Using == to Compare Strings
How To 5.1
Implementing an if Statement
Worked Example 5.1
Extracting the Middle
Computing & Society 5.1 Denver’s Luggage Handling System
5.3 Multiple Alternatives
InterActivities
More InterActivities
Special Topic 5.2
The switch Statement
5.4 Nested Branches
InterActivities
More InterActivities
Programming Tip 5.5
Hand-Tracing
Common Error 5.3
The Dangling else Problem
Special Topic 5.3
Block Scope
Special Topic 5.4
Enumeration Types
5.5 Problem Solving: Flowcharts
InterActivities
5.6 Problem Solving: Selecting Test Cases (Testing Track)
InterActivities
Programming Tip 5.6
Make a Schedule and Make Time for Unexpected Problems
Special Topic 5.5
Logging
5.7 Boolean Variables and Operators
InterActivities
More InterActivities
Common Error 5.4
Combining Multiple Relational Operators
Common Error 5.5
Confusing && and || Conditions
Special Topic 5.6
Short-Circuit Evaluation of Boolean Operators
Special Topic 5.7
De Morgan’s Law
5.8 Application: Input Validation
InterActivities
More InterActivities
Computing & Society 5.2 Artificial Intelligence
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
6. Loops
6.1 The while Loop
Syntax 6.1 while Statement
InterActivities
More InterActivities
Common Error 6.1
Don’t Think “Are We There Yet?”
Common Error 6.2
Infinite Loops
Common Error 6.3
Off-by-One Errors
6.2 Problem Solving: Hand-Tracing
InterActivities
More InterActivities
Computing & Society 6.1 Digital Piracy
6.3 The for Loop
Syntax 6.2 for Statement
InterActivities
More InterActivities
Programming Tip 6.1
Use for Loops for Their Intended Purpose Only
Programming Tip 6.2
Choose Loop Bounds That Match Your Task
Programming Tip 6.3
Count Iterations
Special Topic 6.1
Variables Declared in a for Loop Header
6.4 The do Loop
InterActivities
More InterActivities
Programming Tip 6.4
Flowcharts for Loops
6.5 Application: Processing Sentinel Values
InterActivities
More InterActivities
Special Topic 6.2
Redirection of Input and Output
Special Topic 6.3
The “Loop and a Half” Problem
Special Topic 6.4
The break and continue Statements
6.6 Problem Solving: Storyboards InterActivities
More InterActivities
6.7 Common Loop Algorithms
6.7.1 Sum and Average Value InterActivities
6.7.2 Counting Matches
InterActivities
More InterActivities
6.7.3 Finding the First Match
InterActivities
More InterActivities
6.7.4 Prompting Until a Match is Found
InterActivities
6.7.5 Maximum and Minimum
InterActivities
6.7.6 Comparing Adjacent Values
InterActivities
More InterActivities
How To 6.1
Writing a Loop
Worked Example 6.1
Credit Card Processing
6.8 Nested Loops
InterActivities
Worked Example 6.2
Manipulating the Pixels in an Image
6.9 Application: Random Numbers and Simulations
6.9.1 Generating Random Numbers
InterActivities
6.9.2 The Monte Carlo Method
InterActivities
More InterActivities
6.10 Using a Debugger (Testing Track)
InterActivities
How To 6.2
Debugging
Worked Example 6.3
A Sample Debugging Session
Computing & Society 6.2 The First Bug
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
7. Arrays and Array Lists
7.1 Arrays
7.1.1 Declaring and Using Arrays
Syntax 7.1 Arrays
InterActivities
More InterActivities
7.1.2 Array References InterActivities
7.1.3 Using Arrays with Methods
7.1.4 Partially Filled Arrays
InterActivities
More InterActivities
Common Error 7.1
Bounds Errors
Common Error 7.2
Uninitialized and Unfilled Arrays
Programming Tip 7.1
Use Arrays for Sequences of Related Items
Programming Tip 7.2
Make Parallel Arrays into Arrays of Objects
Special Topic 7.1
Methods with a Variable Number of Arguments
Computing & Society 7.1 Computer Viruses
7.2 The Enhanced for Loop
Syntax 7.2 The Enhanced for Loop InterActivities
7.3 Common Array Algorithms
7.3.1 Filling InterActivities
More InterActivities
7.3.2 Sum and Average Value InterActivities
7.3.3 Maximum and Minimum InterActivities
7.3.4 Element Separators
7.3.5 Linear Search InterActivities
More InterActivities
7.3.6 Removing an Element InterActivities
7.3.7 Inserting an Element InterActivities
7.3.8 Swapping Elements InterActivities
7.3.9 Copying Arrays InterActivities
More InterActivities
7.3.10 Reading Input
Common Error 7.3
Underestimating the Size of a Data Set
Special Topic 7.2
Sorting with the Java Library
7.4 Problem Solving: Adapting Algorithms
InterActivities
More InterActivities
How To 7.1
Working with Arrays
Worked Example 7.1
Rolling the Dice
7.5 Problem Solving: Discovering Algorithms by Manipulating Physical Objects
InterActivities
7.6 Two-Dimensional Arrays
7.6.1 Declaring Two-Dimensional Arrays
Syntax 7.3 Two-Dimensional Array Declaration
InterActivities
7.6.2 Accessing Elements
InterActivities
7.6.3 Locating Neighboring Elements
More InterActivities
7.6.4 Accessing Rows and Columns
InterActivities
More InterActivities
Worked Example 7.2
A World Population Table
Special Topic 7.3
Two-Dimensional Arrays with Variable Row Lengths
Special Topic 7.4
Multidimensional Arrays
7.7 Array Lists
Syntax 7.4 Array Lists
7.7.1 Declaring and Using Array Lists
InterActivities
7.7.2 Using the Enhanced for Loop with Array Lists
InterActivities
More InterActivities
7.7.3 Copying Array Lists
InterActivities
More InterActivities
7.7.4 Wrappers and Auto-boxing
InterActivities
More InterActivities
7.7.5 Using Array Algorithms with Array Lists
InterActivities
More InterActivities
7.7.6 Storing Input Values in an Array List
More InterActivities
7.7.7 Removing Matches
More InterActivities
7.7.8 Choosing Between Array Lists and Arrays
Common Error 7.4
Length and Size
Special Topic 7.5
The Diamond Syntax
7.8 Regression Testing (Testing Track)
Programming Tip 7.3
Batch Files and Shell Scripts
Computing & Society 7.2 The Therac-25 Incidents
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
8. Designing Classes
8.1 Discovering Classes
InterActivities
8.2 Designing Good Methods
8.2.1 Providing a Cohesive Public Interface
8.2.2 Minimizing Dependencies
8.2.3 Separating Accessors and Mutators
8.2.4 Minimizing Side Effects
InterActivities
More InterActivities
Programming Tip 8.1
Consistency
Special Topic 8.1
Call by Value and Call by Reference
8.3 Problem Solving: Patterns for Object Data
8.3.1 Keeping a Total
8.3.2 Counting Events
8.3.3 Collecting Values
8.3.4 Managing Properties of an Object
8.3.5 Modeling Objects with Distinct States
8.3.6 Describing the Position of an Object
InterActivities
More InterActivities
8.4 Static Variables and Methods
InterActivities
More InterActivities
Programming Tip 8.2
Minimize the Use of Static Methods
Common Error 8.1
Trying to Access Instance Variables in Static Methods
Special Topic 8.2
Alternative Forms of Instance and Static Variable Initialization
Special Topic 8.3
Static Imports
8.5 Problem Solving: Solve a Simpler Problem First InterActivities
8.6 Packages
8.6.1 Organizing Related Classes into Pack-ages
8.6.2 Importing Packages
8.6.3 Package Names
Syntax 8.1 Package Specification
8.6.4 Packages and Source Files
InterActivities
Common Error 8.2
Confusing Dots
Special Topic 8.4
Package Access
How To 8.1
Programming with Packages
8.7 Unit Test Frameworks (Testing Track)
InterActivities
More InterActivities
Computing & Society 8.1 Personal Computing
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
9. Inheritance
9.1 Inheritance Hierarchies
InterActivities
Programming Tip 9.1
Use a Single Class for Variation in Values, Inheritance for Variation in Behavior
9.2 Implementing Subclasses
Syntax 9.1 Subclass Declaration
InterActivities
More InterActivities
Common Error 9.1
Replicating Instance Variables from the Superclass
Common Error 9.2
Confusing Super- and Subclasses
9.3 Overriding Methods
Syntax 9.2 Calling a Superclass Method
InterActivities
More InterActivities
Common Error 9.3
Accidental Overloading
Common Error 9.4
Forgetting to Use super When Invoking a Superclass Method
Special Topic 9.1
Calling the Superclass Constructor
Syntax 9.3 Constructor with Superclass Initializer
9.4 Polymorphism
InterActivities
More InterActivities
Special Topic 9.2
Dynamic Method Lookup and the Implicit Parameter
Special Topic 9.3
Abstract Classes
Special Topic 9.4
Final Methods and Classes
Special Topic 9.5
Protected Access
How To 9.1
Developing an Inheritance Hierarchy
Worked Example 9.1
Implementing an Employee Hierarchy for Payroll Processing
9.5 Object: The Cosmic Superclass
9.5.1 Overriding the toString Method
InterActivities
More InterActivities
9.5.2 The equals Method
InterActivities
More InterActivities
9.5.3 The instanceof Operator
Syntax 9.4 The instanceof Operator
InterActivities
Common Error 9.5
Don’t Use Type Tests
Special Topic 9.6
Inheritance and the toString Method
Special Topic 9.7
Inheritance and the equals Method
Computing & Society 9.1 Who Controls the Internet?
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
10. Interfaces
10.1 Using Interfaces for Algorithm Reuse
10.1.1 Discovering an Interface Type
10.1.2 Declaring an Interface Type
Syntax 10.1 Declaring an Interface
10.1.3 Implementing an Interface Type
Syntax 10.2 Implementing an Interface
10.1.4 Comparing Interfaces and Inheritance
InterActivities
More InterActivities
Common Error 10.1
Forgetting to Declare Implementing Methods as Public
Common Error 10.2
Trying to Instantiate an Interface
Special Topic 10.1
Constants in Interfaces
Java 8 Note 10.1
Static Methods in Interfaces
Java 8 Note 10.2
Default Methods
Java 8 Note 10.3
Conflicting Default Methods
10.2 Working with Interface Types
10.2.1 Converting from Classes to Interfaces
10.2.2 Invoking Methods on Interface Variables
10.2.3 Casting from Interfaces to Classes
InterActivities
More InterActivities
Worked Example 10.1
Investigating Number Sequences
10.3 The Comparable Interface
InterActivities
More InterActivities
Programming Tip 10.1
Comparing Integers and Floating-Point Numbers
Special Topic 10.2
The clone Method and the Cloneable Interface
10.4 Using Interfaces for Callbacks
InterActivities
Java 8 Note 10.4
Lambda Expressions
Special Topic 10.3
Generic Interface Types
10.5 Inner Classes
InterActivities
Special Topic 10.4
Anonymous Classes
10.6 Mock Objects (Testing Track)
InterActivities
10.7 Event Handling (Graphics Track)
10.7.1 Listening to Events
10.7.2 Using Inner Classes for Listeners
InterActivities
Common Error 10.3
Modifying Parameter Types in the Implementing Method
Common Error 10.4
Trying to Call Listener Methods
Java 8 Note 10.5
Lambda Expressions for Event Handling
10.8 Building Applications with Buttons (Graphics Track)
InterActivities
Common Error 10.5
Forgetting to Attach a Listener
Programming Tip 10.2
Don’t Use a Container as a Listener
10.9 Processing Timer Events (Graphics Track)
InterActivities
Common Error 10.6
Forgetting to Repaint
10.10 Mouse Events (Graphics Track)
InterActivities
Special Topic 10.5
Keyboard Events
Special Topic 10.6
Event Adapters
Computing & Society 10.1 Open Source and Free Software
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
11. Input/Output and Exception Handling
11.1 Reading and Writing Text Files
InterActivities
More InterActivities
Common Error 11.1
Backslashes in File Names
Common Error 11.2
Constructing a Scanner with a String
Special Topic 11.1
Reading Web Pages
Special Topic 11.2
File Dialog Boxes
Special Topic 11.3
Character Encodings
11.2 Text Input and Output
11.2.1 Reading Words
InterActivities
11.2.2 Reading Characters
InterActivities
More InterActivities
11.2.3 Classifying Characters
InterActivities
More InterActivities
11.2.4 Reading Lines
InterActivities
11.2.5 Scanning a String InterActivities
More InterActivities
11.2.6 Converting Strings to Numbers InterActivities
More InterActivities
11.2.7 Avoiding Errors When Reading Numbers
InterActivities
More InterActivities
11.2.8 Mixing Number, Word, and Line Input
InterActivities
More InterActivities
11.2.9 Formatting Output
InterActivities
Special Topic 11.4
Regular Expressions
Special Topic 11.5
Reading an Entire File
11.3 Command Line Arguments
InterActivities
More InterActivities
How To 11.1
Processing Text Files
Worked Example 11.1
Analyzing Baby Names
Computing & Society 11.1 Encryption Algorithms
11.4 Exception Handling
11.4.1 Throwing Exceptions
Syntax 11.1 Throwing an Exception InterActivities
More InterActivities
11.4.2 Catching Exceptions
Syntax 11.2 Catching Exceptions
InterActivities
More InterActivities
11.4.3 Checked Exceptions
Syntax 11.3 The throws Clause InterActivities
11.4.4 Closing Resources
Syntax 11.4 The try-with-resources Statement
InterActivities
11.4.5 Designing Your Own Exception Types
Programming Tip 11.1
Throw Early, Catch Late
Programming Tip 11.2
Do Not Squelch Exceptions
Programming Tip 11.3
Do Throw Specific Exceptions
Special Topic 11.6
Assertions
Special Topic 11.7
The try/finally Statement
11.5 Application: Handling Input Errors
Computing & Society 11.2 The Ariane Rocket Incident
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
12. Object-Oriented Design
12.1 Classes and Their Responsibilities
12.1.1 Discovering Classes
12.1.2 The CRC Card Method
InterActivities
12.2 Relationships Between Classes
12.2.1 Dependency
12.2.2 Aggregation
12.2.3 Inheritance
InterActivities
How To 12.1
Using CRC Cards and UML Diagrams in Program Design
Special Topic 12.1
Attributes and Methods in UML Diagrams
Special Topic 12.2
Multiplicities
Special Topic 12.3
Aggregation, Association, and Composition
12.3 Application: Printing an Invoice
12.3.1 Requirements
12.3.2 CRC Cards
12.3.3 UML Diagrams
12.3.4 Method Documentation
12.3.5 Implementation
InterActivities
Computing & Society 12.1 Databases and Privacy
Worked Example 12.1
Simulating an Automatic Teller Machine
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
13. Recursion
13.1 Triangle Numbers
InterActivities
Common Error 13.1
Infinite Recursion
Common Error 13.2
Tracing Through Recursive Methods
How To 13.1
Thinking Recursively
Worked Example 13.1
Finding Files
13.2 Recursive Helper Methods
InterActivities
13.3 The Efficiency of Recursion
InterActivities
13.4 Permutations
InterActivities
Computing & Society 13.1 The Limits of Computation
13.5 Mutual Recursion
InterActivities
13.6 Backtracking
InterActivities
Worked Example 13.2
Towers of Hanoi Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
14. Sorting and Searching
14.1 Selection Sort
InterActivities
14.2 Profiling the Selection Sort Algorithm
InterActivities
14.3 Analyzing the Performance of the Selection Sort Algorithm
InterActivities
Special Topic 14.1
Oh, Omega, and Theta
Special Topic 14.2
Insertion Sort
14.4 Merge Sort
InterActivities
14.5 Analyzing the Merge Sort Algorithm
InterActivities
Special Topic 14.3
The Quicksort Algorithm
14.6 Searching
14.6.1 Linear Search
14.6.2 Binary Search
InterActivities
Computing & Society 14.1 The First Programmer
14.7 Problem Solving: Estimating the Running Time of an Algorithm
14.7.1 Linear Time
14.7.2 Quadratic Time
14.7.3 The Triangle Pattern
14.7.4 Logarithmic Time
InterActivities
14.8 Sorting and Searching in the Java Library
14.8.1 Sorting
14.8.2 Binary Search
14.8.3 Comparing Objects
InterActivities
Common Error 14.1
The compareTo Method Can Return Any Integer, Not Just –1, 0, and 1
Special Topic 14.4
The Comparator Interface
Java 8 Note 14.1
Comparators with Lambda Expressions
Worked Example 14.1
Enhancing the Insertion Sort Algorithm
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
15. The Java Collections Framework
15.1 An Overview of the Collections Framework
InterActivities
15.2 Linked Lists
15.2.1 The Structure of Linked Lists
15.2.2 The LinkedList Class of the Java Collections Framework
15.2.3 List Iterators
InterActivities
Computing & Society 15.1 Standardization
15.3 Sets
15.3.1 Choosing a Set Implementation
15.3.2 Working with Sets
InterActivities
Programming Tip 15.1
Use Interface References to Manipulate Data Structures
15.4 Maps
InterActivities
Java 8 Note 15.1
Updating Map Entries
How To 15.1
Choosing a Collection
Worked Example 15.1
Word Frequency
Special Topic 15.1
Hash Functions
15.5 Stacks, Queues, and Priority Queues
15.5.1 Stacks
15.5.2 Queues
15.5.3 Priority Queues
InterActivities
15.6 Stack and Queue Applications
15.6.1 Balancing Parentheses
15.6.2 Evaluating Reverse Polish Expressions
15.6.3 Evaluating Algebraic Expressions
15.6.4 Backtracking
InterActivities
Worked Example 15.2
Simulating a Queue of Waiting Customers
Special Topic 15.2
Reverse Polish Notation
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
16. Basic Data Structures
16.1 Implementing Linked Lists
16.1.1 The Node Class
16.1.2 Adding and Removing the First Element
16.1.3 The Iterator Class
16.1.4 Advancing an Iterator
16.1.5 Removing an Element
16.1.6 Adding an Element
16.1.7 Setting an Element to a Different Value
16.1.8 Efficiency of Linked List Operations
InterActivities
Special Topic 16.1
Static Classes
Worked Example 16.1
Implementing a Doubly-Linked List
16.2 Implementing Array Lists
16.2.1 Getting and Setting Elements
16.2.2 Removing or Adding Elements
16.2.3 Growing the Internal Array
InterActivities
16.3 Implementing Stacks and Queues
16.3.2 Stacks as Arrays
16.3.3 Queues as Linked Lists
16.3.4 Queues as Circular Arrays
InterActivities
16.4 Implementing a Hash Table
16.4.1 Hash Codes
16.4.2 Hash Tables
16.4.3 Finding an Element
16.4.4 Adding and Removing Elements
16.4.5 Iterating over a Hash Table
InterActivities
Special Topic 16.2
Open Addressing
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
17. Tree Structures
17.1 Basic Tree Concepts
InterActivities
17.2 Binary Trees
17.2.1 Binary Tree Examples
17.2.2 Balanced Trees
17.2.3 A Binary Tree Implementation
InterActivities
Worked Example 17.1
Building a Huffman Tree
17.3 Binary Search Trees
17.3.1 The Binary Search Property
17.3.2 Insertion
17.3.3 Removal
17.3.4 Efficiency of the Operations
InterActivities
17.4 Tree Traversal
17.4.1 Inorder Traversal
17.4.2 Preorder and Postorder Traversals
17.4.3 The Visitor Pattern
17.4.4 Depth-First and Breadth-First Search
17.4.5 Tree Iterators
InterActivities
17.5 Red-Black Trees
17.5.1 Basic Properties of Red-Black Trees
17.5.2 Insertion
17.5.3 Removal
Worked Example 17.2
Implementing a Red-Black Tree
17.6 Heaps
17.7 The Heapsort Algorithm
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
18. Generic Classes
18.1 Generic Classes and Type Parameters
InterActivities
18.2 Implementing Generic Types
Syntax 18.1 Declaring a Generic Class
InterActivities
18.3 Generic Methods
Syntax 18.2 Declaring a Generic Method
InterActivities
18.4 Constraining Type Parameters
InterActivities
Common Error 18.1
Genericity and Inheritance
Common Error 18.2
The Array Store Exception
Special Topic 18.1
Wildcard Types
18.5 Type Erasure
InterActivities
Common Error 18.3
Using Generic Types in a Static Context
Special Topic 18.2
Reflection
Worked Example 18.1
Making a Generic Binary Search Tree Class
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
19. Stream Processing
19.1 The Stream Concept
InterActivities
19.2 Producing Streams
InterActivities
19.3 Collecting Results
InterActivities
Programming Tip 19.1
One Stream Operation Per Line
Special Topic 19.1
Infinite Streams
19.4 Transforming Streams
InterActivities
Common Error 19.1
Don’t Use a Terminated Stream
19.5 Lambda Expressions
Syntax 19.1 Lambda Expressions
InterActivities
Programming Tip 19.2
Keep Lambda Expressions Short
Special Topic 19.2
Method and Constructor References
Special Topic 19.3
Higher-Order Functions
Special Topic 19.4
Higher-Order Functions and Comparators
19.6 The Optional Type
InterActivities
Common Error 19.2
Optional Results Without Values
19.7 Other Terminal Operations
InterActivities
Common Error 19.3
Don’t Apply Mutations in Parallel Stream Operations
19.8 Primitive-Type Streams
19.8.1 Creating Primitive-Type Streams
19.8.2 Mapping a Primitive-Type Stream
19.8.3 Processing Primitive-Type Streams
InterActivities
19.9 Grouping Results
InterActivities
19.10 Common Algorithms Revisited
19.10.1 Filling
19.10.2 Sum, Average, Maximum, and Minimum
19.10.3 Counting Matches
19.10.4 Element Separators
19.10.5 Linear Search
19.10.6 Comparing Adjacent Values
InterActivities
How To 19.1
Working with Streams
Worked Example 19.1
Word Properties
Worked Example 19.2
A Movie Database
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
20. Graphical User Interfaces
20.1 Layout Management
20.1.1 Using Layout Managers
20.1.2 Achieving Complex Layouts
20.1.3 Using Inheritance to Customize Frames
Common Error 20.1
By Default, Components Have Zero Width and Height
Special Topic 20.1
Adding the main Method to the Frame Class
20.2 Processing Text Input
20.2.1 Text Fields
20.2.2 Text Areas
20.3 Choices
20.3.1 Radio Buttons
20.3.2 Check Boxes
20.3.3 Combo Boxes
How To 20.1
Laying Out a User Interface
Worked Example 20.1
Programming a Working Calculator
Programming Tip 20.1
Use a GUI Builder
20.4 Menus
20.5 Exploring the Swing Documentation
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
21. Advanced Input/Output
21.1 Readers, Writers, and Input/Output Streams
21.2 Binary Input and Output
Common Error 21.1
Negative byte Values
21.3 Random Access
21.4 Object Input and Output Streams
How To 21.1
Choosing a File Format
21.5 File and Directory Operations
21.5.1 Paths
21.5.2 Creating and Deleting Files and Directories
21.5.3 Useful File Operations
21.5.4 Visiting Directories
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
22. Multithreading
22.1 Running Threads
Programming Tip 22.1
Use the Runnable Interface
Special Topic 22.1
Thread Pools
22.2 Terminating Threads
Programming Tip 22.2
Check for Thread Interruptions in the run Method of a Thread
22.3 Race Conditions
22.4 Synchronizing Object Access
22.5 Avoiding Deadlocks
Common Error 22.1
Calling await Without Calling signalAll
Common Error 22.2
Calling signalAll Without Locking the Object
Special Topic 22.2
Object Locks and Synchronized Methods
Special Topic 22.3
The Java Memory Model
22.6 Application: Algorithm Animation
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
23. Internet Networking
23.1 The Internet Protocol
23.2 Application Level Protocols
23.3 A Client Program
23.4 A Server Program
How To 23.1
Designing Client/Server Programs
23.5 URL Connections
Programming Tip 23.1
Use High-Level Libraries
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
24. Relational Databases
24.1 Organizing Database Information
24.1.1 Database Tables
24.1.2 Linking Tables
24.1.3 Implementing Multi-Valued Relation-ships
Programming Tip 24.1
Stick with the Standard
Programming Tip 24.2
Avoid Unnecessary Data Replication
Programming Tip 24.3
Don’t Replicate Columns in a Table
Special Topic 24.1
Primary Keys and Indexes
24.2 Queries
24.2.1 Simple Queries
24.2.2 Selecting Columns
24.2.3 Selecting Subsets
24.2.4 Calculations
24.2.5 Joins
24.2.6 Updating and Deleting Data
Common Error 24.1
Joining Tables Without Specifying a Link Condition
24.3 Installing a Database
24.4 Database Programming in Java
24.4.1 Connecting to the Database
24.4.2 Executing SQL Statements
24.4.3 Analyzing Query Results
24.4.4 Result Set Metadata
Common Error 24.2
Constructing Queries from Arbitrary Strings
Programming Tip 24.4
Don’t Hardwire Database Connection Parameters into Your Program
Programming Tip 24.5
Let the Database Do the Work
24.5 Application: Entering an Invoice
Special Topic 24.2
Transactions
Special Topic 24.3
Object-Relational Mapping
Worked Example 24.1
Programming a Bank Database
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
25. XML
25.1 XML Tags and Documents
25.1.1 Advantages of XML
25.1.2 Differences Between XML and HTML
25.1.3 The Structure of an XML Document
How To 25.1
Designing an XML Document Format
Programming Tip 25.1
Prefer XML Elements over Attributes
Programming Tip 25.2
Avoid Children with Mixed Elements and Text
25.2 Parsing XML Documents
Common Error 25.1
XML Elements Describe Objects, Not Classes
25.3 Creating XML Documents
How To 25.2
Writing an XML Document
Special Topic 25.1
Grammars, Parsers, and Compilers
25.4 Validating XML Documents
25.4.1 Document Type Definitions
25.4.2 Specifying a DTD in an XML Document
25.4.3 Parsing and Validation
How To 25.3
Writing a DTD
Special Topic 25.2
Schema Languages
Special Topic 25.3
Other XML Technologies
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
26. Web Applications
26.1 The Architecture of a Web Application
26.2 The Architecture of a JSF Application
26.2.1 JSF Pages
26.2.2 Managed Beans
26.2.3 Separation of Presentation and Business Logic
26.2.4 Deploying a JSF Application
Special Topic 26.1
Session State and Cookies
26.3 JavaBeans Components
26.4 Navigation Between Pages
How To 26.1
Designing a Managed Bean
26.5 JSF Components
26.6 A Three-Tier Application
Special Topic 26.2
AJAX
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
APPENDIX A: THE BASIC LATIN AND LATIN-1 SUBSETS OF UNICODE
APPENDIX B: JAVA OPERATOR SUMMARY
APPENDIX C: JAVA RESERVED WORD SUMMARY
APPENDIX D: THE JAVA LIBRARY
Package java.awt
Package java.awt.event
Package java.awt.geom
Package java.io
Package java.lang
Package java.math
Package java.net
Package java.nio.file
Package java.sql
Package java.text
Package java.util
Package java.util.concurrent.locks
Package java.util.function
Package java.util.logging
Package java.util.stream
Package javax.sql
Package javax.swing
Package javax.swing.border
Package javax.swing.event
Package javax.swing.text
Package javax.xml.parsers
Package javax.xml.xpath
Package org.w3c.dom
Package org.w3c.dom.ls
APPENDIX E: JAVA LANGUAGE CODING GUIDELINES
Introduction
Source Files
Classes
Methods
Variables and Constants
Control Flow
Lexical Issues
APPENDIX F: TOOL SUMMARY
The Java Compiler
The Java Virtual Machine Launcher
The JAR Tool
APPENDIX G: NUMBER SYSTEMS
Binary Numbers
Overflow and Roundoff Errors
Two’s Complement Integers
IEEE Floating-Point Numbers
Hexadecimal Numbers
Bit and Shift Operations
APPENDIX H: UML SUMMARY
CRC Cards
UML Diagrams
APPENDIX I: JAVA SYNTAX SUMMARY
Types
Variables
Expressions
Classes
Interfaces
Enumeration Types
Methods
Constructors
Statements
Exceptions
Packages
Generic Types and Methods
Comments
APPENDIX J: HTML SUMMARY
A Brief Introduction to HTML
Illustration Credits
Wiley End User License Agreement