Core Java

From your first println to threads and streams, see what the JVM does at every step.

Beginner to Intermediate14 modules84 lessonsFree · no sign-up
84 of 84 lessons published
Start the course

Syllabus

01 Introduction to JavaWhat Java is, why it runs everywhere, and what happens when you press Run. 6 lessons
  1. 1.1What is Java and why learn it?15 minStart
  2. 1.2History and key features of Java18 minStart
  3. 1.3JDK vs JRE vs JVM16 minStart
  4. 1.4How Java code runs: source → bytecode → JVM18 minStart
  5. 1.5Installing Java and your first program17 minStart
  6. 1.6Structure of a Java program (class, main, statements)17 minStart
02 Language BasicsVariables, data types, operators and taking input from the user. 7 lessons
  1. 2.1Variables: boxes in memory16 minStart
  2. 2.2Primitive data types (int, double, char, boolean…)18 minStart
  3. 2.3Reference types and how they differ17 minStart
  4. 2.4Type casting: widening and narrowing17 minStart
  5. 2.5Operators: arithmetic, relational, logical, bitwise19 minStart
  6. 2.6Taking input with Scanner17 minStart
  7. 2.7Comments, keywords and naming conventions15 minStart
03 Control FlowMaking decisions and repeating work: if, switch and loops. 6 lessons
  1. 3.1if, else-if and else16 minStart
  2. 3.2switch statement and switch expressions17 minStart
  3. 3.3for loop20 minStart
  4. 3.4while and do-while loops19 minStart
  5. 3.5break, continue and labelled loops17 minStart
  6. 3.6Nested loops and pattern printing22 minStart
04 Arrays and StringsStoring many values together and working with text. 6 lessons
  1. 4.1One-dimensional arrays24 minStart
  2. 4.2Two-dimensional arrays24 minStart
  3. 4.3String class and immutability22 minStart
  4. 4.4String pool: == vs equals()20 minStart
  5. 4.5Common String methods26 minStart
  6. 4.6StringBuilder and StringBuffer22 minStart
05 MethodsBreaking programs into reusable pieces, and what the call stack does. 6 lessons
  1. 5.1Defining and calling methods22 minStart
  2. 5.2Parameters and return values22 minStart
  3. 5.3Pass-by-value in Java22 minStart
  4. 5.4Method overloading20 minStart
  5. 5.5Recursion and the call stack24 minStart
  6. 5.6Variable arguments (varargs)18 minStart
06 Object-Oriented Programming: BasicsClasses, objects, constructors and the keywords that hold them together. 6 lessons
  1. 6.1Classes and objects24 minStart
  2. 6.2Constructors and constructor chaining24 minStart
  3. 6.3The this keyword20 minStart
  4. 6.4The static keyword22 minStart
  5. 6.5Access modifiers20 minStart
  6. 6.6Packages and imports19 minStart
07 Object-Oriented Programming: The Four PillarsEncapsulation, inheritance, polymorphism and abstraction with real-world models. 8 lessons
  1. 7.1Encapsulation: getters and setters22 minStart
  2. 7.2Inheritance and types of inheritance24 minStart
  3. 7.3The super keyword22 minStart
  4. 7.4Method overriding24 minStart
  5. 7.5Polymorphism: compile-time and runtime25 minStart
  6. 7.6Abstraction with abstract classes23 minStart
  7. 7.7Interfaces (default and static methods)25 minStart
  8. 7.8The final keyword21 minStart
08 Inside the JVM: MemoryStack, heap, garbage collection and class loading, the behind-the-scenes view. 5 lessons
  1. 8.1Stack vs heap memory24 minStart
  2. 8.2Object lifecycle22 minStart
  3. 8.3Garbage collection26 minStart
  4. 8.4Class loaders and class loading24 minStart
  5. 8.5JIT compiler and performance22 minStart
09 Exception HandlingWhat happens when things go wrong, and how to recover gracefully. 6 lessons
  1. 9.1What are exceptions? Exception hierarchy22 minStart
  2. 9.2try, catch and finally24 minStart
  3. 9.3Checked vs unchecked exceptions21 minStart
  4. 9.4throw and throws23 minStart
  5. 9.5Custom exceptions22 minStart
  6. 9.6try-with-resources22 minStart
10 Core Classes and Language FeaturesWrapper classes, the Object class, enums and inner classes. 5 lessons
  1. 10.1Wrapper classes20 minStart
  2. 10.2Autoboxing and unboxing18 minStart
  3. 10.3Object class: equals(), hashCode(), toString()24 minStart
  4. 10.4Enums22 minStart
  5. 10.5Inner, static nested and anonymous classes24 minStart
11 Collections FrameworkLists, sets and maps, plus how HashMap works internally. 8 lessons
  1. 11.1Collections Framework overview22 minStart
  2. 11.2Generics24 minStart
  3. 11.3ArrayList22 minStart
  4. 11.4LinkedList20 minStart
  5. 11.5HashSet, LinkedHashSet and TreeSet22 minStart
  6. 11.6HashMap and how it works internally28 minStart
  7. 11.7Iterator and ListIterator20 minStart
  8. 11.8Comparable vs Comparator24 minStart
12 MultithreadingRunning many tasks at once, and keeping them from clashing. 6 lessons
  1. 12.1Processes vs threads20 minStart
  2. 12.2Creating threads: Thread vs Runnable22 minStart
  3. 12.3Thread lifecycle22 minStart
  4. 12.4Synchronization and race conditions25 minStart
  5. 12.5Inter-thread communication: wait() and notify()25 minStart
  6. 12.6ExecutorService and thread pools25 minStart
13 File Handling and I/OReading and writing files, and saving objects to disk. 4 lessons
  1. 13.1I/O streams: byte and character22 minStart
  2. 13.2Reading and writing files22 minStart
  3. 13.3BufferedReader and BufferedWriter22 minStart
  4. 13.4Serialization and deserialization24 minStart
14 Modern Java (Java 8 and later)Lambdas, streams and the newer features used in today's projects. 5 lessons
  1. 14.1Lambda expressions22 minStart
  2. 14.2Functional interfaces22 minStart
  3. 14.3Stream API: filter, map, reduce25 minStart
  4. 14.4Optional20 minStart
  5. 14.5var, records and text blocks22 minStart