About this course
A binge-worthy 6-season journey through Java Programming. Learn to write software that actually ships — one episode at a time.
Java Programming is a free, self-paced programming course from Crookshanks' Academy. It contains 36 video lessons organised into 6 seasons, each with study notes and a practice task. Track your progress as you go and earn a certificate of completion when you finish every episode.
What you'll learn
Season 1
- JAVA Full Course | Introduction to JAVA | Java Full Course for Beginners in 2026
- Write Your First JAVA Program | JVM, JDK & JRE Explained | JSE vs JEE vs JME | JAVA Full Course #2
- Java Variables & Data Types Explained | Identifiers, Literals, Keywords | JAVA Full Course #3
- How Java Stores Negative & Floating Point Numbers | Java Full Course #4
- Java Type Conversions & Type Promotions Explained | Casting in Java | Java Full Course #5
- Java Operators | Arithmetic + Unary + Logical + Bitwise + Assignment Operators | Java Full Course #6
Season 2
- Java Conditional Statements | If, If-Else, If-Else-If Ladder, Switch Explained | Full Java Course #7
- Java Loops & Jump Statements | for, while, do-while, break, continue Explained | Java Full Course #8
- Introduction to Arrays | Declaration, Initialization, Traversal | String Intro | Java Full Course #9
- How Arrays work in Java | Heap, Contiguous Storage, Random Access | Java Full Course #10
- Java Functions Deep Dive | Recursion | Method Overloading | Java Full Course #11
- Object Oriented Programming in Java | Classes, Objects, new Keyword | Java Full Course #12
Season 3
- Constructors in Java | Constructor Chaining, Overloading & this | Java Full Course #13
- Objects Deep Dive | Size, Call by Value vs Reference | Shallow vs Deep Copy | Java Full Course #14
- Static & Final in Java | Static Methods, Blocks & String[] args | Java Full Course #15
- Encapsulation & Inheritance in Java | Java Packages & Super Keyword | Java Full Course #16
- Abstraction & Polymorphism in Depth | Abstract Class vs Interfaces | Java Full Course #17
- AutoBoxing, Abstract classes & POJOs | Why only one public class in java file | Java Full Course #18
Season 4
- Java Nested Classes | Static Nested, Inner, Local & Anonymous Classes | Java Full Course #19
- Java I/O Deep Dive | InputStreams, System.in, Scanner vs BufferedReader | Java Full Course #20
- Immutable Classes in Java | How to Create Immutable Objects | Java Full Course #21
- Most Important Class in Java | Object Class (equals, hashCode, toString) | Java Full Course #22
- Java Enums | Why Not Use int/String for Constants? | Java Full Course #23
- Java Interfaces Deep Dive | Default Methods, Functional, Marker Interfaces | Java Full Course #24
Season 5
- Java Strings | String Pool, Immutability, Internals | Java Full Course #25
- Java Strings Part 2 | All String Methods + StringBuilder vs StringBuffer | Java Full Course #26
- Java Generics Deep Dive | Bounded Types using extends | Java Full Course #27
- Wildcards in Generics | ?, ? extends, ? super | Java Full Course #28
- Java Collection Framework Explained | Data Structures + Complete Hierarchy | Java Full Course #29
- Iterable Interface in Java | Why Iterator Exists? | For-Each Loop | Java Full Course #30
Season 6
- Java Collection Interface Deep Dive | Methods & Internals | Java Full Course #31
- Java List Interface Deep Dive | ArrayList, LinkedList, Vector, Stack | Java Full Course #32
- Set & Map Interface in Java | Internal Working of HashMap, HashSet & TreeMap | Java Full Course #33
- Set & Map Methods Explained | EnumMaps, IdentityHashMaps & More | Java Full Course #34
- Java Queue Interface Deep Dive | PriorityQueue & Heap Explained | Java Full Course #35
- Comparable Interface in Java | Collections class | Comparing Objects | Java Full Course #36