# Learn and Share Java: Interactive Algorithms Textbook

Each chapter has code that you can try in the browser. You can also **paste / share code**, e.g. Java 8 features.

Free Java Tutorials >> Table of contents

Each chapter has code that you can try in the browser. You can also **paste / share code**, e.g. Java 8 features.

One page crib/cheat sheet pdfs with partial coverage of topics.

- Hello World, Compilation, Errors, print, and println
- Expressions, Variables, Swapping, and Casting
- Arithmetic and Assignment Operators
- Primitives, Expression Literals, Overflow, and Bitwise

- Booleans, Comparisons, and Operator Precedence
- If, Switch, Break, Continue, and Ordering
- De Morgan's Laws, Truth Tables, Short Circuiting
- While, Do-While, Infinite Loops, Break, Continue, For
- Loop Algorithms: Aggregation, Double Loops, Primes, Digit Sums

- Arrays, Instantiation, Indexing, Length, Bounds
- Summation, Filtering, Min/Max, Search
- 2d Arrays, Jagged Arrays, Matrix Operations
- Binary Search, Matrix Multiplication and Rotation, Convolution
- Selection Sort, Bubble Sort, Insertion Sort

- Computational Complexity, Big-O, Worst/Best Case, Memory
- Common static function libraries, Math, Arrays, Random
- char, Strings, charAt, length, equals, reversal, compareTo, StringBuilder
- String arrays, split, substring, indexOf, replace

- Function declarations, return, multiple arguments
- Recursion, Induction, Fibonacci and String Recursive Algorithms
- Flood Fill, Flood Count
- Combinations, Permutations, Variations
- Mergesort, Quicksort

- Classes, Constructors, Fields, Methods
- Visibility Operators, static, overloading, this
- Enums
- References, Array References, Wrapper Classes, Autoboxing

- Generics, Wildcards, Type Erasure
- ArrayList, Hash functions, Hash tables, HashSet, HashMap
- Algorithms using Collections
- Text Chapter: Scanner, IO, Net, Buffers

- Inheritance, extends, Object, super
- Abstract Classes, Generic extends
- Interfaces, Multiple Inheritance, Anonymous Classes, Lambdas
- Comparable, Iterable, Sorting Again, Map, Reduce, Filter
- Exceptions, try-catch-finally

- Linked Lists, Traversal
- Trees, Recursive Traversal
- BFS, DFS
- Heaps
- Graphs, BFS, DFS, Dijktra, Diameter

- Mini Processing Examples
- Game Walkthroughs
- Twitter Bot Beginner Problems
- Bitcoin Programming Tutorial, Part 1
- Bitcoin Programming Tutorial, Part 2

- Youtube Video on Eclipse and Maven in 60 seconds
- The Processing IDE and Java Integration
- Graphics API resources and examples
- Threading
- Reflection
- TA Application Quiz
- Problem of the month
- The KTByte Challenge
- One Page Java Crib/Cheat Sheets