1. Getting StartedActivity 1: Obtaining the Minimum of Two Numbers2. Learning the BasicsActivity 1: Taking Input and Comparing Ranges3. Object-Oriented ProgrammingActivity 1: Adding the Frequency-of-Symbol Calculation to WordToolActivity 2: Adding Documentation to WordTool4. Collections, List, and Java's Built-In APIsActivity 1: Searching for Multiple Occurrences in an ArrayActivity 2: Iterating through Large Lists5. ExceptionsActivity 1: Designing an Exception Class Logging Data6. Libraries, Packages, and ModulesActivity 1: Tracking Summer High Temperatures7. Databases and JDBCActivity 1: Track Your Progress8. Sockets, Files, and StreamsActivity 1: Writing the Directory Structure to a FileActivity 2: Improving the EchoServer and EchoClient Programs9. Working with HTTPActivity 1: Using the jsoup Library to Download Files from the Web11. ProcessesActivity 1: Making a Parent Process to Launch a Child Process12. Regular ExpressionsActivity 1: Regular Expressions to Check If the Entrance is Entered in the Desired Format13. Functional Programming with Lambda ExpressionsActivity 1: Modifying Immutable Lists14. RecursionActivity 1: Calculating the Fibonacci Sequence15. Processing Data with StreamsActivity 1: Applying Discount on the ItemsActivity 2: Searching for Specifics16. Predicates and Other Functional InterfacesActivity 1: Toggling the Sensor StatesActivity 2: Using a Recursive FunctionActivity 3: Using a Lambda Function17. Reactive Programming with Java FlowActivity 1: Let NumberProcessor Format Values as Integers18. Unit TestingActivity 1: Counting the Words in the String