See More

- [Prelude](./prelude.md) - [Asking for Help](./prelude/asking_for_help.md) - [Toy Problems](./prelude/toy_problems.md) - [Lies](./prelude/lies.md) - [AI](./prelude/ai.md) - [Java](./prelude/java.md) - [Testimonials](./prelude/testimonials.md) # Modern Java - [Set Up Your Computer](./text_editors/set_up_your_computer.md) - [Text Editors](./text_editors.md) - [IDEs](./text_editors/ides.md) - [VSCodium](./text_editors/vscodium.md) - [Install VSCodium](./text_editors/install_vscodium.md) - [Install Java](./text_editors/install_java.md) - [The Terminal](./the_terminal.md) - [Bash](./the_terminal/bash.md) - [Windows Subsystem for Linux](./the_terminal/windows_subsystem_for_linux.md) - [Chromebooks and School Computers](./the_terminal/chromebooks_and_school_computers.md) - [Commands](./the_terminal/commands.md) - [Directories](./the_terminal/directories.md) - [Listing Files](./the_terminal/listing_files.md) - [Creating Directories](./the_terminal/creating_directories.md) - [Changing Directories](./the_terminal/changing_directories.md) - [Creating Files](./the_terminal/creating_files.md) - [Run Java Programs](./the_terminal/run_java_programs.md) - [Getting Used to it](./the_terminal/getting_used_to_it.md) - [First Steps](./first_steps.md) - [Comments](./first_steps/comments.md) - [Semicolons](./first_steps/semicolon.md) - [Formatting](./first_steps/formatting.md) - [Challenges](./first_steps/challenges.md) - [Local Variables](./variables.md) - [Naming](./variables/naming.md) - [Reassignment](./variables/reassignment.md) - [Delayed Assignment](./variables/delayed_assignment.md) - [Types](./variables/types.md) - [Final Variables](./variables/final_variables.md) - [Inferred Types](./variables/inferred_types.md) - [Challenges](./variables/challenges.md) # Data Types I - [Booleans](./boolean.md) - [Not](./boolean/not.md) - [And](./boolean/and.md) - [Or](./boolean/or.md) - [Operator Precedence](./boolean/operator_precedence.md) - [Challenges](./boolean/challenges.md) - [Integers](./integers.md) - [Integer Literals](./integers/integer_literals.md) - [Addition](./integers/addition.md) - [Subtraction](./integers/subtraction.md) - [Multiplication](./integers/multiplication.md) - [Division](./integers/division.md) - [Remainder](./integers/remainder.md) - [Equality](./integers/equality.md) - [Comparison](./integers/comparison.md) - [Chained Comparisons](./integers/chained_comparisons.md) - [Operator Precedence](./integers/operator_precedence.md) - [Reassignment](./integers/reassignment.md) - [Shorthands for Reassignment](./integers/shorthands_for_reassignment.md) - [Limits](./integers/limits.md) - [Challenges](./integers/challenges.md) - [Floating Point Numbers](./floating_point_numbers.md) - [Floating Point Literals](./floating_point_numbers/floating_point_literals.md) - [Accuracy](./floating_point_numbers/accuracy.md) - [Addition](./floating_point_numbers/addition.md) - [Subtraction](./floating_point_numbers/subtraction.md) - [Multiplication](./floating_point_numbers/multiplication.md) - [Division](./floating_point_numbers/division.md) - [Equality](./floating_point_numbers/equality.md) - [Comparison](./floating_point_numbers/comparison.md) - [Shorthands for Reassignment](./floating_point_numbers/shorthands_for_reassignment.md) - [NaN](./floating_point_numbers/nan.md) - [Positive and Negative Infinity](./floating_point_numbers/positive_and_negative_infinity.md) - [Square Root](./floating_point_numbers/square_root.md) - [Conversion to Integers](./floating_point_numbers/conversion_to_integers.md) - [Conversion from Integers](./floating_point_numbers/conversion_from_integers.md) - [Challenges](./floating_point_numbers/challenges.md) - [Characters](./characters.md) - [Character Literals](./characters/character_literals.md) - [Common Escape Sequences](./characters/common_escape_sequences.md) - [Conversion to Integers](./characters/conversion_to_integers.md) - [Conversion from Integers](./characters/conversion_from_integers.md) - [Unicode](./characters/unicode.md) - [Challenges](./characters/challenges.md) - [Strings](./strings.md) - [String Literals](./strings/string_literals.md) - [Common Escape Sequences](./strings/common_escape_sequences.md) - [The Empty String](./strings/empty_string.md) - [Multiline String Literals](./strings/multiline.md) - [Concatenation](./strings/concatenation.md) - [Equality](./strings/equality.md) - [Length](./strings/length.md) - [Access Individual Characters](./strings/access_individual_characters.md) - [Challenges](./strings/challenges.md) # Interactive Programs - [Standard Input](./standard_input.md) - [Prompting](./standard_input/prompting.md) - [Interpreting Input](./standard_input/interpreting_input.md) - [Integers](./standard_input/integers.md) - [Floating Point Numbers](./standard_input/floating_point_numbers.md) - [Other Types](./standard_input/other_types.md) - [Challenges](./standard_input/challenges.md) # Control Flow I - [Branching Paths](./branching_paths.md) - [If](./branching_logic/if.md) - [Nested Ifs](./branching_logic/nested_ifs.md) - [Else](./branching_logic/else.md) - [Else If](./branching_logic/else_if.md) - [Relation to Delayed Assignment](./branching_logic/relation_to_delayed_assignment.md) - [Scoped Variables](./branching_logic/scoped_variables.md) - [Conditional Operator](./branching_logic/conditional_operator.md) - [Boolean Expressions](./branching_logic/boolean_expressions.md) - [Challenges](./branching_logic/challenges.md) - [Loops](./loops.md) - [While](./loops/while.md) - [Endless Loops](./loops/endless_loops.md) - [Break](./loops/break.md) - [Continue](./loops/continue.md) - [Unreachable Code](./loops/unreachable_code.md) - [Do While](./loops/do_while.md) - [Nested Loops](./loops/nested_loops.md) - [Labeled Break](./loops/labeled_break.md) - [Labeled Continue](./loops/labeled_continue.md) - [Iteration](./loops/iteration.md) - [Counting Up](./loops/counting_up.md) - [Counting Down](./loops/counting_down.md) - [Iterate over a String](./loops/iterate_over_a_string.md) - [Challenges](./loops/challenges.md) # Projects - [Prelude](./projects/prelude.md) - [Calorie Tracker](./projects/calorie_tracker.md) # Data Types II - [Arrays](./arrays.md) - [Array Initializers](./arrays/array_initializers.md) - [Length](./arrays/length.md) - [Access Individual Elements](./arrays/access_individual_elements.md) - [Set Individual Elements](./arrays/set_individual_elements.md) - [Aliasing](./arrays/aliasing.md) - [Reassignment](./arrays/reassignment.md) - [Relation to Final Variables](./arrays/relation_to_final_variables.md) - [Printing the Contents of an Array](./arrays/printing_the_contents_of_an_array.md) - [Empty Array](./arrays/empty_array.md) - [Difference between Initializer and Literal](./arrays/difference_between_initializer_and_literal.md) - [Initialization with new](./arrays/initialization_with_new.md) - [Challenges](./arrays/challenges.md) # Control Flow II - [Loops II](./loops_ii.md) - [For](./loops_ii/for.md) - [For Syntax](./loops_ii/for_syntax.md) - [Counting Up and Down](./loops_ii/for_counting_up_and_down.md) - [Iterate over a String](./loops_ii/iterate_over_a_string.md) - [Iterate over an Array](./loops_ii/iterate_over_an_array.md) - [Comparison to while](./loops_ii/comparison_to_while.md) - [i](./loops_ii/i.md) - [Break](./loops_ii/break.md) - [Continue](./loops_ii/continue.md) - [Delayed Assignment](./loops_ii/delayed_assignment.md) - [Inferred Types](./loops_ii/inferred_types.md) - [Empty Initializers](./loops_ii/empty_initializers.md) - [Empty Expressions](./loops_ii/empty_expressions.md) - [Empty Statements](./loops_ii/empty_statements.md) - [Final Variables](./loops_ii/final_variables.md) - [Labeled Break](./loops_ii/labeled_break.md) - [Labeled Continue](./loops_ii/labeled_continue.md) - [Drawing Right Triangles](./loops_ii/drawing_right_triangles.md) - [Drawing Isosceles Triangles](./loops_ii/drawing_isosceles_triangles.md) - [Challenges](./loops_ii/challenges.md) # Code Structure - [Methods](./methods.md) - [Declaration](./methods/declaration.md) - [Invocation](./methods/invocation.md) - [Scope](./methods/scope.md) - [main](./methods/main.md) - [Challenges](./methods/challenges.md) - [Arguments](./arguments.md) - [Declaration](./arguments/declaration.md) - [Invocation with Arguments](./arguments/invocation_with_arguments.md) - [Reassignment](./arguments/reassignment.md) - [Final Arguments](./arguments/final_arguments.md) - [Aliasing](./arguments/aliasing.md) - [Overloading](./arguments/overloading.md) - [Inferred Types](./arguments/inferred_types.md) - [Challenges](./arguments/challenges.md) - [Return Values](./return_values.md) - [Declaration](./return_values/declaration.md) - [Return Statement](./return_values/return_statement.md) - [Exhaustiveness](./return_values/exhaustiveness.md) - [void](./return_values/void.md) - [Return in void methods](./return_values/return_in_void_methods.md) - [Conversion](./return_values/conversion.md) - [Unreachable Statements](./return_values/unreachable_statements.md) - [Challenges](./return_values/challenges.md) # Data Types III - [Multi-Dimensional Arrays](./multi_dimensional_arrays.md) - [Declaration](./multi_dimensional_arrays/declaration.md) - [Array Initializers](./multi_dimensional_arrays/array_initializers.md) - [Initialization with new](./multi_dimensional_arrays/initialization_with_new.md) - [Access Individual Elements](./multi_dimensional_arrays/access_individual_elements.md) - [Set Individual Elements](./multi_dimensional_arrays/set_individual_elements.md) - [Initialization with Size](./multi_dimensional_arrays/initialize_with_size.md) - [Default Values](./multi_dimensional_arrays/default_values.md) - [Populate Values](./multi_dimensional_arrays/populate_values.md) - [Ragged Arrays](./multi_dimensional_arrays/ragged_arrays.md) - [Challenges](./multi_dimensional_arrays/challenges.md) # Projects - [ASCII Art Generator](./projects/ascii_art.md) # Data Types IV - [null](./null.md) - [Null as Absence](./null/null_as_absence.md) - [Null as Unknown](./null/null_as_unknown.md) - [Checking for null](./null/checking_for_null.md) - [NullPointerException](./null/null_pointer_exception.md) - [Challenges](./null/challenges.md) - [Boxed Primitives](./boxed_primitives.md) - [Integer](./boxed_primitives/integer.md) - [Double](./boxed_primitives/double.md) - [Character](./boxed_primitives/character.md) - [Boolean](./boxed_primitives/boolean.md) - [Unboxing Conversion](./boxed_primitives/unboxing_conversion.md) - [Boxing Conversion](./boxed_primitives/boxing_conversion.md) - [Arrays of Boxed Primitives](./boxed_primitives/arrays_of_boxed_primitives.md) - [Challenges](./boxed_primitives/challenges.md) - [Arrays II](./arrays_ii.md) - [Initializion with Size](./arrays_ii/initialization_with_size.md) - [Default Values](./arrays_ii/default_values.md) - [Populate Arrays](./arrays_ii/populate_arrays.md) - [Challenges](./arrays_ii/challenges.md) # Code Structure II - [Classes](./classes.md) - [The meaning of the word Class](./classes/the_meaning_of_the_word_class.md) - [Class Declaration](./classes/class_declaration.md) - [Naming](./classes/naming.md) - [Instances](./classes/instances.md) - [Fields](./classes/fields.md) - [Field Initialization](./classes/field_initialization.md) - [Field Access](./classes/field_access.md) - [Field Default Values](./classes/field_default_values.md) - [Multiple Instances](./classes/multiple_instances.md) - [Aliasing](./classes/aliasing.md) - [Return Multiple Values](./classes/return_multiple_values.md) - [Challenges](./classes/challenges.md) - [Instance Methods](./instance_methods.md) - [Invocation](./instance_methods/invocation.md) - [Arguments](./instance_methods/arguments.md) - [Field Access](./instance_methods/field_access.md) - [Field Updates](./instance_methods/field_updates.md) - [Derived Values](./instance_methods/derived_values.md) - [Invoke Other Methods](./instance_methods/invoke_other_methods.md) - [this](./instance_methods/this.md) - [Disambiguation](./instance_methods/disambiguation.md) - [Clarity](./instance_methods/clarity.md) - [Challenges](./instance_methods/challenges.md) # Projects - [Point of Sale System](./projects/point_of_sale_system.md) # Data Types V - [Enums](./enums.md) - [Declaration](./enums/declaration.md) - [Variants](./enums/variants.md) - [Naming](./enums/naming.md) - [Usage](./enums/usage.md) - [Equality](./enums/equality.md) - [Comparison to boolean](./enums/comparison_to_boolean.md) - [Challenges](./enums/challenges.md) - [Strings II](./strings_ii.md) - [lowercase](./strings_ii/lowercase.md) - [UPPERCASE](./strings_ii/UPPERCASE.md) - [Equality ignoring case](./strings_ii/equality_ignoring_case.md) - [Check if empty](./strings_ii/check_if_empty.md) - [Check if blank](./strings_ii/check_if_blank.md) - [Strip extra whitespace](./strings_ii/strip_extra_whitespace.md) - [Challenges](./strings_ii/challenges.md) # Control Flow III - [Exceptions](./exceptions.md) - [throw](./exceptions/throw.md) - [Messages](./exceptions/messages.md) - [Stack Traces](./exceptions/stack_traces.md) - [try/catch](./exceptions/try_catch.md) - [Challenges](./exceptions/challenges.md) - [Switch](./switch.md) - [Case and Default](./switch/case_and_default.md) - [Strings](./switch/strings.md) - [ints](./switch/ints.md) - [Enums](./switch/enums.md) - [Omitted Default](./switch/omitted_default.md) - [Combining Cases](./switch/combining_cases.md) - [null](./switch/null.md) - [Exhaustiveness](./switch/exhaustiveness.md) - [Challenges](./switch/challenges.md) # Interactive Programs II - [Standard Input II](./standard_input_ii.md) - [Reprompting](./standard_input_ii/reprompting.md) - [Enums](./standard_input_ii/enums.md) - [Delayed Assignment](./standard_input_ii/delayed_assignment.md) - [Leniency](./standard_input_ii/leniency.md) - [Aggregating Data](./standard_input_ii/aggregating_data.md) - [Challenges](./standard_input_ii/challenges.md) # Code Structure III - [Constructors](./constructors.md) - [Declaration](./constructors/declaration.md) - [The Default Constructor](./constructors/the_default_constructor.md) - [Arguments](./constructors/arguments.md) - [Final Fields](./constructors/final_fields.md) - [Invariants](./constructors/invariants.md) - [Overloads](./constructors/overloads.md) - [Delegation](./constructors/delegation.md) - [Challenges](./constructors/challenges.md) - [Global Fields](./global_fields.md) - [Default Values](./global_fields/default_values.md) - [Final Fields](./global_fields/final_fields.md) - [Field Access](./global_fields/field_access.md) - [Inferred Types](./global_fields/inferred_types.md) - [Challenges](./global_fields/challenges.md) # Projects - [Tic-Tac-Toe](./projects/tic_tac_toe.md) # Concepts - [Code is Read more than Written](./code_is_read_more_than_written.md) - [Meaning](./code_is_read_more_than_written/meaning.md) - [Implications](./code_is_read_more_than_written/implications.md) - [Information Density](./code_is_read_more_than_written/information_density.md) - [Audience](./code_is_read_more_than_written/audience.md) - [Practice](./code_is_read_more_than_written/practice.md) # Control Flow IV - [Exceptions II](./exceptions_ii.md) - [Checked Exceptions](./exceptions_ii/checked_exceptions.md) - [Unchecked Exceptions](./exceptions_ii/unchecked_exceptions.md) - [throws](./exceptions_ii/throws.md) - [Propagating Exceptions](./exceptions_ii/propagating_exceptions.md) - [Exception](./exceptions_ii/exception.md) - [RuntimeException](./exceptions_ii/runtime_exception.md) - [Rethrowing Exceptions](./exceptions_ii/rethrowing_exceptions.md) - [main](./exceptions_ii/main.md) - [Challenges](./exceptions_ii/challenges.md) - [Switch II](./switch_ii.md) - [Yield](./switch_ii/yield.md) - [Omitted Yield](./switch_ii/omitted_yield.md) - [Exhaustiveness](./switch_ii/exhaustiveness.md) - [Return a Switch](./switch_ii/return_a_switch.md) - [Challenges](./switch_ii/challenges.md) # Code Structure IV - [Multi-File Programs](./multi_file_programs.md) - [The Sources folder](./multi_file_programs/the_sources_folder.md) - [The Main file](./multi_file_programs/the_main_file.md) - [A Second file](./multi_file_programs/a_second_file.md) - [File names](./multi_file_programs/file_names.md) - [The Anonymous Main Class](./multi_file_programs/the_anonymous_main_class.md) - [Global Fields](./multi_file_programs/global_fields.md) - [Challenges](./multi_file_programs/challenges.md) - [Visibility](./visibility.md) - [Private Methods](./visibility/private_methods.md) - [Private Fields](./visibility/private_fields.md) - [Invariants](./visibility/invariants.md) - [Accessors](./visibility/accessors.md) - [Getters and Setters](./visibility/getter_and_setters.md) - [Challenges](./visibility/challenges.md) - [Static Fields](./static_fields.md) - [Declaration](./static_fields/declaration.md) - [Initialization](./static_fields/initialization.md) - [Usage](./static_fields/usage.md) - [Constants](./static_fields/constants.md) - [Controversy](./static_fields/controversy.md) - [Naming](./static_fields/naming.md) - [Challenges](./static_fields/challenges.md) - [Static Methods](./static_methods.md) - [Declaration](./static_methods/declaration.md) - [Scope](./static_methods/scope.md) - [Naming](./static_methods/naming.md) - [Usage](./static_methods/usage.md) - [Math](./static_methods/math.md) - [Factories](./static_methods/factories.md) - [Challenges](./static_methods/challenges.md) # Data Structures & Algorithms - [Growable Arrays](./growable_arrays.md) - [Concept](./growable_arrays/concept.md) - [Simple Implementation](./growable_arrays/simple_implementation.md) - [Usage](./growable_arrays/usage.md) - [Performance Problems](./growable_arrays/performance_problems.md) - [Performance Solutions](./growable_arrays/performance_solutions.md) - [Optimized Implementation](./growable_arrays/optimized_implementation.md) - [Challenges](./growable_arrays/challenges.md) # Interactive Programs III - [Command Line Arguments](./command_line_arguments.md) - [Accessing Arguments](./command_line_arguments/accessing_arguments.md) - [Conventions](./command_line_arguments/conventions.md) - [Challenges](./command_line_arguments/challenges.md) # Code Structure V - [Inner Classes](./inner_classes.md) - [Type](./inner_classes/type.md) - [Instances](./inner_classes/instances.md) - [New Operator](./inner_classes/new_operator.md) - [Scope](./inner_classes/scope.md) - [Disambiguation](./inner_classes/disambiguation.md) - [The anonymous main class](./inner_classes/the_anonymous_main_class.md) - [Static Inner Classes](./inner_classes/static_inner_classes.md) - [Private Inner Classes](./inner_classes/private_inner_classes.md) - [Challenges](./inner_classes/challenges.md) - [Packages](./packages.md) - [Declaration](./packages/declaration.md) - [Visibility](./packages/visibility.md) - [Public Classes](./packages/public_classes.md) - [Fully Qualified Class Name](./packages/fully_qualified_class_name.md) - [Import](./packages/import.md) - [Package Imports](./packages/package_imports.md) - [The Default Package](./packages/the_default_package.md) - [The Anonymous Main Class](./packages/the_anonymous_main_class.md) - [Public Methods](./packages/public_methods.md) - [Package-Private Methods](./packages/package_private_methods.md) - [Public Fields](./packages/public_fields.md) - [Package-Private Fields](./packages/package_private_fields.md) - [The Default Constructor](./packages/the_default_constructor.md) - [Public Constructors](./packages/public_constructors.md) - [Package-Private Constructors](./packages/package_private_constructors.md) - [Subpackages](./packages/subpackages.md) - [Reverse Domain Name Notation](./packages/reverse_domain_name_notation.md) - [Challenges](./packages/challenges.md) # Data Types VI - [Records](./records.md) - [Declaration](./records/declaration.md) - [The Canonical Constructor](./records/the_canonical_constructor.md) - [Component Accessors](./records/component_accessors.md) - [Component Accessor Visibility](./records/component_accessor_visibility.md) - [Printing a Record](./records/printing_a_record.md) - [Check for Equality](./records/check_for_equality.md) - [Return Multiple Values](./records/return_multiple_values.md) - [Shorthand](./records/shorthand.md) - [Challenges](./records/challenges.md) - [Integers II](./integers_ii.md) - [Integer from a String](./integers_ii/integer_from_a_string.md) - [Integer to a String](./integers_ii/integer_to_a_string.md) - [Base 16 Integer Literals](./integers_ii/base_16_integer_literals.md) - [Integer from a Base 16 String](./integers_ii/integer_from_a_base_16_string.md) - [Integer to a Base 16 String](./integers_ii/integer_to_a_base_16_string.md) - [Underscores in Integer Literals](./integers_ii/underscores_in_integer_literals.md) - [Challenges](./integers_ii/challenges.md) # Interactive Programs IV - [Files](./files.md) - [Paths](./files/paths.md) - [IOException](./files/ioexception.md) - [UncheckedIOException](./files/uncheckedioexception.md) - [Write to a File](./files/write_to_a_file.md) - [Read from a File](./files/read_from_a_file.md) - [Create a Folder](./files/creating_a_folder.md) - [Challenges](./files/challenges.md) # Projects - [Data Visualization](./projects/data_visualization.md) # Code Structure VI - [Object](./objects.md) - [Subtypes](./objects/subtypes.md) - [instanceof](./objects/instanceof.md) - [toString](./objects/toString.md) - [Override toString](./objects/override_toString.md) - [@Override](./objects/override.md) - [equals and hashCode](./objects/equals_and_hashCode.md) - [Override equals and hashCode](./objects/override_equals_and_hashCode.md) - [Challenges](./objects/challenges.md) - [Generics](./generics.md) - [Type Variables](./generics/type_variables.md) - [Naming](./generics/naming.md) - [Instantiation](./generics/instantiation.md) - [Inference](./generics/inference.md) - [Soundness](./generics/soundness.md) - [Raw Types](./generics/raw_types.md) - [Challenges](./generics/challenges.md) - [Interfaces](./interfaces.md) - [Interface Declaration](./interfaces/interface_declaration.md) - [Implementation](./interfaces/implementation.md) - [@Override](./interfaces/override.md) - [Naming](./interfaces/naming.md) - [Subtypes](./interfaces/subtypes.md) - [Multiple Implementations](./interfaces/multiple_implementations.md) - [Challenges](./interfaces/challenges.md) # Data Types VII - [Time](./time.md) - [Instant](./time/instant.md) - [Duration](./time/duration.md) - [LocalDate](./time/local_date.md) - [LocalTime](./time/local_time.md) - [LocalDateTime](./time/local_date_time.md) - [Time Zones](./time/time_zones.md) - [ZonedDateTime](./time/zoned_date_time.md) - [OffsetDateTime](./time/offset_date_time.md) - [Date](./time/date.md) - [Challenges](./time/challenges.md) - [ArrayList](./array_list.md) - [Ubiquity](./array_list/ubiquity.md) - [Add an item](./array_list/add_an_item.md) - [Size](./array_list/size.md) - [Get an item](./array_list/get_an_item.md) - [Loop over items](./array_list/loop_over_items.md) - [Set an item](./array_list/set_an_item.md) - [Remove an item](./array_list/remove_an_item.md) - [Challenges](./array_list/challenges.md) - [HashMap](./hash_maps.md) - [Filing Cabinets](./hash_maps/filing_cabinets.md) - [Keys and Values](./hash_maps/keys_and_values.md) - [Put Items](./hash_maps/put_items.md) - [Get Items](./hash_maps/get_items.md) - [Hash Functions](./hash_maps/hash_functions.md) - [Hash Collision](./hash_maps/hash_collision.md) - [Hash Distribution](./hash_maps/hash_distribution.md) - [Reference Based Identity](./hash_maps/reference_based_identity.md) - [Value Based Identity](./hash_maps/value_based_identity.md) - [Appropriate Keys](./hash_maps/appropriate_keys.md) - [Ubiquity](./hash_maps/ubiquity.md) - [Challenges](./hash_maps/challenges.md) # Concepts II - [Hyrum's Law](./hyrums_law.md) - [Authority](./hyrums_law/authority.md) - [Validity](./hyrums_law/validity.md) - [Emergent Properties](./hyrums_law/emergent_properties.md) - [Importance](./hyrums_law/importance.md) # Control Flow V - [Switch III](./switch_iii.md) - [break](./switch_iii/break.md) - [fallthrough](./switch_iii/fallthrough.md) - [return](./switch_iii/return.md) - [default](./switch_iii/default.md) - [yield](./switch_iii/yield.md) - [Challenges](./switch_iii/challenges.md) - [Recursion](./recursion.md) - [Disclaimer](./recursion/disclaimer.md) - [Base Case](./recursion/base_case.md) - [Comparison to Delegation](./recursion/comparison_to_delegation.md) - [Comparison to Loops](./recursion/comparison_to_loops.md) - [Counting Down](./recursion/counting_down.md) - [Accumulators](./recursion/accumulators.md) - [Recurse Over a String](./recursion/recursing_over_strings.md) - [Recurse Over an Array](./recursion/recursing_over_arrays.md) - [Challenges](./recursion/challenges.md) - [Loops III](./loops_iii.md) - [For-each loops](./loops_iii/for_each_loops.md) - [Arrays](./loops_iii/arrays.md) - [Iterable and Iterator](./loops_iii/iterable_and_iterator.md) - [ArrayList](./loops_iii/arraylist.md) - [String](./loops_iii/string.md) - [Concurrent Modifications](./loops_iii/concurrent_modifications.md) - [Inferred Types](./loops_iii/inferred_types.md) - [Challenges](./loops_iii/challenges.md) # Concepts III - [Encapsulation](./encapsulation.md) - [Implementation Details](./encapsulation/implementation_details.md) - [Implicit Interfaces](./encapsulation/implicit_interfaces.md) - [Methods](./encapsulation/methods.md) - [Classes](./encapsulation/classes.md) - [Abstraction](./encapsulation/abstractions.md) - [Coupling](./encapsulation/coupling.md) - [Leaky Abstractions](./encapsulation/leaky_abstractions.md) - [Information Hiding](./encapsulation/information_hiding.md) # Data Types VIII - [Collections](./collections.md) - [List](./collections/list.md) - [Map](./collections/map.md) - [Set](./collections/set.md) - [Arrays](./collections/arrays.md) - [UnsupportedOperationException](./collections/unsupported_operation_exception.md) - [Factories](./collections/factories.md) - [Specificity](./collections/specificity.md) - [Challenges](./collections/challenges.md) # Metaprogramming - [Reflection](./reflection.md) - [Class Objects](./reflection/class_objects.md) - [Get all Fields](./reflection/get_all_fields.md) - [Get a Field](./reflection/get_a_field.md) - [Read from a Field](./reflection/read_from_a_field.md) - [Write to a Field](./reflection/write_to_a_field.md) - [Get all Methods](./reflection/get_all_methods.md) - [Get a Method](./reflection/get_a_method.md) - [Invoke a Method](./reflection/invoke_a_method.md) - [Get a Constructor](./reflection/get_a_constructor.md) - [Get all Constructors](./reflection/get_all_constructors.md) - [Invoke a Constructor](./reflection/invoke_a_constructor.md) - [Challenges](./reflection/challenges.md) - [Annotations](./annotations.md) - [Declaration](./annotations/declaration.md) - [Usage](./annotations/usage.md) - [Elements](./annotations/elements.md) - [Usage with Elements](./annotations/usage_with_elements.md) - [Defaults](./annotations/defaults.md) - [@Target](./annotations/target.md) - [@Retention](./annotations/retention.md) - [Reflective Access](./annotations/reflective_access.md) - [@Override](./annotations/override.md) - [Challenges](./annotations/challenges.md) # Code Structure VII - [Interfaces II](./interfaces_ii.md) - [Default Methods](./interfaces_ii/default_methods.md) - [Interface Extension](./interfaces_ii/interface_extension.md) - [Static Methods](./interfaces_ii/static_methods.md) - [Static Fields](./interfaces_ii/static_fields.md) - [Challenges](./interfaces_ii/challenges.md) - [Class Extension](./class_extension.md) - [Extend a Class](./class_extension/extend_a_class.md) - [Inheritance](./class_extension/inheritance.md) - [Override](./class_extension/override.md) - [Protected](./class_extension/protected.md) - [Abstract Classes](./class_extension/abstract_classes.md) - [Abstract Methods](./class_extension/abstract_methods.md) - [Relation to Interfaces](./class_extension/relation_to_interfaces.md) - [Relation to Encapsulation](./class_extension/relation_to_encapsulation.md) - [Final Classes](./class_extension/final_classes.md) - [Challenges](./class_extension/challenges.md) # Data Types IX - [Niche Numerics](./niche_numerics.md) - [byte](./niche_numerics/byte.md) - [short](./niche_numerics/short.md) - [long](./niche_numerics/long.md) - [Unsigned Operations](./niche_numerics/unsigned_operations.md) - [float](./niche_numerics/float.md) - [Challenges](./niche_numerics/challenges.md) # Projects - [Music Maker](./projects/music_maker.md) # Code Structure VIII - [Modules](./modules.md) - [Declaration](./modules/declaration.md) - [Restrictions](./modules/restrictions.md) - [Exports](./modules/exports.md) - [Requires](./modules/requires.md) - [Module Imports](./modules/module_imports.md) - [java.base](./modules/java.base.md) - [The Unnamed Module](./modules/the_unnamed_module.md) - [Multi-Module Directory Layout](./modules/multi_module_directory_layout.md) - [Purpose](./modules/purpose.md) - [Challenges](./modules/challenges.md) - [Lambdas](./lambdas.md) - [Functional Interfaces](./lambdas/functional_interfaces.md) - [@FunctionalInterface](./lambdas/functional_interface_annotation.md) - [Lambda Expressions](./lambdas/lambda_expressions.md) - [Arguments](./lambdas/arguments.md) - [Return](./lambdas/return.md) - [Method References](./lambdas/method_references.md) - [Constructor References](./lambdas/constructor_references.md) - [Inference](./lambdas/inference.md) - [Built-In Functional Interfaces](./lambdas/built_in_functional_interfaces.md) - [Checked Exceptions](./lambdas/checked_exceptions.md) - [Challenges](./lambdas/challenges.md) # Sharing Code - [Compilation](./compilation.md) - [javac](./compilation/javac.md) - [Class Files](./compilation/class_files.md) - [Modules](./compilation/modules.md) - [Compile Multiple Files](./compilation/multiple_files.md) - [Clean](./compilation/clean.md) - [-g](./compilation/g.md) - [Running Compiled Code](./compilation/running_compiled_code.md) - [Challenges](./compilation/challenges.md) - [Packaging](./packaging.md) - [jar](./packaging/jar.md) - [Jar Files](./packaging/jar_files.md) - [--module-path](./packaging/module_path.md) - [--main-class](./packaging/main_class.md) - [Libraries](./packaging/libraries.md) - [Challenges](./packaging/challenges.md) # Tools - [just](./just.md) - [Installation](./just/installation.md) - [Justfile](./just/justfile.md) - [Recipes](./just/recipes.md) - [Dependencies](./just/dependencies.md) - [Documentation Comments](./just/documentation_comments.md) - [Further Reading](./just/further_reading.md) - [Challenges](./just/challenges.md) # Sharing Code II - [Documentation](./documentation.md) - [Documentation Comments](./documentation/documentation_comments.md) - [Format](./documentation/format.md) - [javadoc](./documentation/javadoc.md) - [Challenges](./documentation/challenges.md) # Data Types X - [Streams](./streams.md) - [stream](./streams/stream.md) - [map](./streams/map.md) - [filter](./streams/filter.md) - [Terminal Operations](./streams/terminal_operations.md) - [Collectors](./streams/collectors.md) - [Purpose](./streams/purpose.md) - [Challenges](./streams/challenges.md) # Conclusion - [What Now?](./conclusion/what_now.md) - [🚧 (More Chapters Planned) 🚧]()