Computer Science > eBook-PDF > eBook [PDF] Big Java Early Objects, 6th Edition By Cay S. Horstmann (All)

eBook [PDF] Big Java Early Objects, 6th Edition By Cay S. Horstmann

Document Content and Description Below

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 Wa... lkthrough 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 [Show More]

Last updated: 2 years ago

Preview 1 out of 1040 pages

Buy Now

Instant download

We Accept:

We Accept
document-preview

Buy this document to get the full access instantly

Instant Download Access after purchase

Buy Now

Instant download

We Accept:

We Accept

Reviews( 0 )

$20.00

Buy Now

We Accept:

We Accept

Instant download

Can't find what you want? Try our AI powered Search

68
0

Document information


Connected school, study & course


About the document


Uploaded On

Mar 14, 2022

Number of pages

1040

Written in

Seller


seller-icon
eBookSmTb

Member since 3 years

3035 Documents Sold

Reviews Received
469
73
57
16
42
Additional information

This document has been written for:

Uploaded

Mar 14, 2022

Downloads

 0

Views

 68

Document Keyword Tags

Recommended For You

Get more on eBook-PDF »

$20.00
What is Scholarfriends

In Scholarfriends, a student can earn by offering help to other student. Students can help other students with materials by upploading their notes and earn money.

We are here to help

We're available through e-mail, Twitter, Facebook, and live chat.
 FAQ
 Questions? Leave a message!

Follow us on
 Twitter

Copyright © Scholarfriends · High quality services·