AP Computer Science A ✏ In a Nutshell 1. Introductory Java Language FeaturesA summary of Introductory Java Language Features: Packages and Classes, Identifiers, Built-in Types, Final Variables (Constants), Storage of Numbers, Hexadecimal and Octal Numbers, Operators, Relational Operators, Logical Operators, Assignment Operators, System Output, Escape Sequences, Control Structures: if Statements, Switch Statements, Loops, Common Loop Pitfalls, Errors and Exceptions, Handling Errors2. Classes and ObjectsA summary of Classes and Objects: Objects, Classes, Public Private and Static, Methods, Constructors, Accessors and Mutators, Static Methods, Method Overloading, Scope Rules, Reference vs. Primitive Types, Passing Parameters, Null References, Using the this Keyword, Garbage Collection, Good Class Design Principles3. Inheritance and PolymorphismA summary of Inheritance and Polymorphism: Inheritance, Inheritance Hierarchy, Implementing Subclasses with extends, Method Overriding and the super Keyword, Constructors and super, Rules for Subclasses, Declaring Subclass Objects, Polymorphism, Dynamic Binding (Late Binding), Type Compatibility and Downcasting, Abstract Classes and Methods, Benefits of Inheritance and Polymorphism, Best Practices4. Some Standard ClassesA summary of Some Standard Classes: The Object Class, The String Class, Comparing Strings, Important String Methods, Processing Strings in Programs, Wrapper Classes Integer and Double, The Math Class, Generating Random Numbers, Randomness in Simulations, Common Errors with Math.random()5. Program Design and AnalysisA summary of Program Design and Analysis: Software Development, Types of Errors, Robustness, Test Data Selection, Program Maintenance, Object-Oriented Program Design, Using UML Diagrams, Program Implementation Strategies, Top-Down Development, Procedural Abstraction, Data Encapsulation, Program Analysis Efficiency and Correctness, Common Efficiency Patterns, Correctness, Examples of Good Program Analysis6. Arrays and Array ListsA summary of Arrays and Array Lists: One-Dimensional Arrays, Array Initialization, Array Length, Traversing Arrays, Arrays as Parameters, Shuffling Arrays, Arrays in Classes, Analyzing Array Algorithms, ArrayLists, ArrayList Initialization and Usage, Traversing ArrayLists, Removing Elements from ArrayLists, Two-Dimensional Arrays, Traversing 2D Arrays, Row-Major and Column-Major Traversal, Key 2D Array Methods, Common Mistakes with 2D Arrays7. RecursionA summary of Recursion: Recursive Methods, General Form of Recursive Methods, Writing Recursive Methods, Analysis of Recursive Methods, Guidelines for Using Recursion, Recursive Helper Methods, Recursion in Two-Dimensional Grids, Common 2D Recursive Problems, Example of 2D Recursion, Sample Free-Response Question Fractal Pattern, Tracing Recursive Calls, Common Mistakes in Recursion8. Sorting and SearchingA summary of Sorting and Searching: Selection Sort, Insertion Sort, Common Points Selection vs Insertion Sort, Recursive Sorts Merge Sort and Quicksort, Sorting Algorithms in Java, Sequential (Linear) Search, Binary Search, Efficiency Comparisons, Choosing the Right Search or Sort