Recommended Java Version - Java 21 
 
Step 00 - Installing Java - Overview 
 
Step 01 - Installing Java - Windows 
 
Step 02 - Installing Java - Mac 
 
Step 03 - Installing Java - Linux 
 
Step 04 - Troubleshooting Java Installation 
 
Step 00 - Step By Step Problem Solving with Programming 
 
Step 01 - Introduction to Multiplication Table challenge 
 
Step 02 - Getting Started with JShell 
 
Step 03 - Break Down Multiplication Table Challenge 
 
Step 04 - Java Expression - An Introduction 
 
Step 05 - Java Expression - Exercises 
 
Step 06 - Java Expression - Puzzles 
 
Step 07 - Printing output to console with Java 
 
Step 08 - Printing output to console with Java - Exercise Statements 
 
Step 09 - Printing output to console with Java - Exercise Solutions 
 
Step 10 - Printing output to console with Java - Puzzles 
 
JShell Tip - Multiple Lines of Code 
 
Step 11 - Advanced Printing output to console with Java 
 
Step 12 - Advanced Printing output to console with Java - Exercises 
 
Step 13 - Introduction to Variables in Java 
 
Step 14 - Introduction to Variables in Java - Exercises and Puzzles 
 
Step 15 - 4 Important Things to Know about Variables in Java 
 
Step 16 - How are variables stored in memory? 
 
Step 17 - How to name a variable? 
 
Step 18 - Understanding Primitive Variable Types in Java 
 
Step 19 - Understanding Primitive Variable Types in Java - Choosing a Type 
 
Java Tip - String Concatenation 
 
Step 20 - Java Assignment Operator 
 
Step 21 - Java Assignment Operator - Puzzles on Increment Decrement and Compoun 
 
Step 22 - Programming Tips : JShell - Shortcuts Multiple Lines and Variables 
 
Step 23 - Java Conditionals and If Statement - Introduction 
 
Step 24 - Java Conditionals and If Statement - Exercise Statements 
 
Step 25 - Java Conditionals and If Statement - Exercise Solutions 
 
Step 26 - Java Conditionals and If Statement - Puzzles 
 
Step 27 - Java For Loop to Print Multiplication Table - Introduction 
 
Step 28 - Java For Loop to Print Multiplication Table - Exercise Statements 
 
Step 29 - Java For Loop to Print Multiplication Table - Exercise Solutions 
 
Step 30 - Java For Loop to Print Multiplication Table - Puzzles 
 
Step 31 - Getting Started with Programming - Revise all Terminology 
 
How to remember things for long time 
 
Maximizing Learning Efficiency with Playback Speed 
 
Step 00 - Section 02 - Methods - An Introduction 
 
Step 01 - Your First Java Method - Hello World Twice and Exercise Statements 
 
Step 02 - Introduction to Java Methods - Exercises and Puzzles 
 
Step 03 - Programming Tip - Editing Methods with JShell 
 
Step 04 - Introduction to Java Methods - Arguments and Parameters 
 
Step 05 - Introduction to Java Method Arguments - Exercises 
 
Step 06 - Introduction to Java Method Arguments - Puzzles and Tips 
 
Step 07 - Getting back to Multiplication Table - Creating a method 
 
Step 08 - Print Multiplication Table with a Parameter and Method Overloading 
 
Step 09 - Passing Multiple Parameters to a Java Method 
 
Step 10 - Returning from a Java Method - An Introduction 
 
Step 11 - Returning from a Java Method - Exercises 
 
Step 12 - Methods - Section Review 
 
Step 00 - Section 03 - Overview Of Java Platform - Section Overview 
 
Step 01 - Overview Of Java Platform - An Introduction - java javac bytecode an 
 
DO NOT SKIP - OPTIONAL HANDS-ON 
 
Step 02 - Java Class and Object - First Look 
 
Step 03 - Create a method in a Java class 
 
Step 04 - Create and Compile Planet.java class 
 
Step 05 - Run Planet class with Java - Using a main method 
 
Step 06 - Play and Learn with Planet Class 
 
Step 07 - JDK vs JRE vs JVM 
 
Step 00 - Installing Eclipse - Windows 
 
Step 00 - Installing Eclipse - Mac 
 
Step 01 - Creating a New Java Project with Eclipse 
 
Step 02 - Your first Java class with Eclipse 
 
Step 03 - Writing Multiplication Table Java Program with Eclipse 
 
Step 04 - Adding more methods for Multiplication Table Program 
 
Eclipse Tip - Save Actions 
 
Do Not use Modules for now 
 
Step 05 - Programming Tip 1 : Refactoring with Eclipse 
 
Step 06 - Programming Tip 2 : Debugging with Eclipse 
 
Step 07 - Programming Tip 3 : Eclipse vs JShell - How to choose? 
 
How to Stay UpTo Date With Technology Changes 
 
My 10 Rules for Happy Programmers 
 
Introduction To Java Coding Exercises 
 
Coding Exercise: Hello Coding Exercises 
 
Coding Exercise: Print Hello World 
 
Solution Video For Coding Exercise: Print Hello World 
 
Coding Exercise: Time Converter 
 
Solution Video For Coding Exercise: Time Converter 
 
Coding Exercise: Exam Result Checker 
 
Solution Video For Coding Exercise - Exam Result Checker 
 
Coding Exercise: Is Valid Triangle 
 
Solution Video For Coding Exercise - Is Valid Triangle 
 
Coding Exercise: Is Right Angled Triangle 
 
Solution Video For Coding Exercise - Is Right Angled Triangle 
 
Coding Exercise: Sum of Squares of First N Numbers 
 
Solution Video For Coding Exercise - Sum of Squares of First N Numbers 
 
Coding Exercise: Is Leap Year 
 
Solution Video For Coding Exercise - Is Leap Year 
 
Coding Exercise: Is Perfect Number 
 
Solution Video For Coding Exercise - Is Perfect Number 
 
Step 00 - Introduction to Object Oriented Programming - Section Overview 
 
Step 01 - Introduction to Object Oriented Programming - Basics 
 
Step 02 - Introduction to Object Oriented Programming - Terminology - Class Obj 
 
Step 03 - Introduction to Object Oriented Programming - Exercise - Online Shoppi 
 
Step 04 - Create Motor Bike Java Class and a couple of objects 
 
Step 05 - Exercise Solutions - Book class and Three instances 
 
Step 06 - Introducing State of an object with speed variable 
 
Step 07 - Understanding basics of Encapsulation with Setter methods 
 
Step 08 - Exercises and Tips - Getters and Generating Getters and Setters with E 
 
Step 09 - Puzzles on this and initialization of member variables 
 
Step 10 - First Advantage of Encapsulation 
 
Step 11 - Introduction to Encapsulation - Level 2 
 
Step 12 - Encapsulation Exercises - Better Validation and Book class 
 
Step 13 - Introdcution to Abstraction 
 
Step 14 - Introduction to Java Constructors 
 
Step 15 - Introduction to Java Constructors - Exercises and Puzzles 
 
Step 16 - Introduction to Object Oriented Programming - Conclusion 
 
DO NOT SKIP - FLASH CARDS 
 
What should I do when I face a challenge 
 
Coding Exercise: Inches to Object (Feet Inches) 
 
Solution Video For Coding Exercise - Inches to Object (Feet Inches) 
 
Coding Exercise: Create a Square class 
 
Solution Video For Coding Exercise - Create a Square class 
 
Coding Exercise: Create a Point class with 2 d co-ordinates xy 
 
Solution Video For Coding Exercise - Create a Point class with 2 d co-ordinates 
 
Coding Exercise: RGB Color Class 
 
Solution Video For Coding Exercise - RGB Color Class 
 
All Work and No Play Make Adam and Eve Dull Kids 
 
Step 00 - Primitive Data Types in Depth - Section Overview 
 
Step 01 - Basics about Java Integer Data Types - Casting Operators and More 
 
Step 02 - Java Integer Data Types - Puzzles - Octal Hexadecimal Post and Pre i 
 
Step 03 - Java Integer Data Types - Exercises - BiNumber - add multiply and dou 
 
Step 04 - Java Floating Point Data Types - Casting  Conversion and Accuracy 
 
Step 05 - Introduction to BigDecimal Java Class 
 
Step 06 - BigDecimal Puzzles - Adding Integers 
 
Step 07 - BigDecimal Exercises - Simple Interest Calculation 
 
Step 08 - Java Boolean Data Type - Relational and Logical Operators 
 
Step 09 - Java Boolean Data Type - Puzzles - Short Circuit Operators 
 
Step 10 - Java Character Data Type char - Representation and Conversion 
 
Step 11 - Java char Data Type - Exercises 1 - isVowel 
 
Step 12 - Java char Data Type - Exercises 2 - isDigit 
 
Step 13 - Java char Data Type - Exercises 3 - isConsonant List Upper Case and L 
 
Step 14 - Primitive Data Types in Depth - Conclusion 
 
DO NOT SKIP - FLASH CARDS 
 
How to be Productive - 3 Tips 
 
Step 00 - Conditionals with Java - Section Overview 
 
Step 01 - Introduction to If Else Statement 
 
Step 02 - Introduction to Nested If Else 
 
Step 03 - If Else Statement - Puzzles 
 
Step 04 - If Else Problem - How to get User Input in Java? 
 
Step 05 - If Else Problem - How to get number 2 and choice from user? 
 
Step 06 - If Else Problem - Implementing with Nested If Else 
 
Programming Tip - CodingBat dot Com 
 
Step 07 - Java Switch Statement - An introduction 
 
Step 08 - Java Switch Statement - Puzzles - Default Break and Fall Through 
 
Step 09 - Java Switch Statement - Exercises - isWeekDay nameOfMonth nameOfDay 
 
Step 10 - Java Ternary Operation - An Introduction 
 
Step 11 - Conditionals with Java - Conclusion 
 
Why should you teach others 
 
Coding Exercise: Student Grades A to F based on Marks 
 
Solution Video For Coding Exercise - Student Grades A to F based on Marks 
 
Coding Exercise: Weather Advisor 
 
Solution Video For Coding Exercise - Weather Advisor 
 
Coding Exercise: Switch with Char - Is a Vowel or Not 
 
Solution Video For Coding Exercise - Switch with Char - Is a Vowel or Not 
 
Step 00 - Java Loops - Section Introduction 
 
Step 01 - Java For Loop - Syntax and Puzzles 
 
Step 02 - Java For Loop - Exercises Overview and First Exercise Prime Numbers 
 
Step 03 - Java For Loop - Exercise - Sum Upto N Numbers and Sum of Divisors 
 
Step 04 - Java For Loop - Exercise - Print a Number Triangle 
 
Eclipse Tip - Templates - sysout main fore ifelse 
 
Step 05 - While Loop in Java - An Introduction 
 
Step 06 - While Loop - Exericises - Cubes and Squares upto limit 
 
Step 07 - Do While Loop in Java - An Introduction 
 
Step 08 - Do While Loop in Java - An Example - Cube while user enters positive n 
 
Step 09 - Introduction to Break and Continue 
 
Step 10 - Selecting Loop in Java - For vs While vs Do While 
 
DO NOT SKIP - FLASH CARDS 
 
Technology Change is an Opportunity 
 
Coding Exercise: Calculate Factorial Of a Number 
 
Solution Video For Coding Exercise - Calculate Factorial Of a Number 
 
Coding Exercise: Find Last Digit Of A Number 
 
Solution Video For Coding Exercise - Find Last Digit Of A Number 
 
Coding Exercise: Find Number of Digits in a Number 
 
Solution Video For Coding Exercise - Find Number of Digits in a Number 
 
Coding Exercise: Calculate Sum of Digits of a Number 
 
Solution Video For Coding Exercise - Calculate Sum of Digits of a Number 
 
Coding Exercise: Reverse a Number 
 
Solution Video For Coding Exercise - Reverse a Number 
 
Coding Exercise: LCM Of A Number 
 
Solution Video For Coding Exercise - LCM Of A Number 
 
Coding Exercise: GCD of a Number 
 
Solution Video For Coding Exercise - GCD of a Number 
 
Step 00 - Java Reference Types - Section Introduction 
 
Step 01 - Reference Types - How are they stored in Memory? 
 
Step 02 - Java Reference Types - Puzzles 
 
Step 03 - String class - Introduction and Exercise - Print each word and char on 
 
Step 04 - String class - Exercise Solution and Some More Important Methods 
 
Step 05 - Understanding String is Immutable and String Concat Upper Case Lower 
 
Step 06 - String Concatenation and Join Replace Methods 
 
Step 07 - Java String Alternatives - StringBuffer and StringBuilder 
 
Step 08 - Java Wrapper Classes - An Introduction - Why and What? 
 
Step 09 - Java Wrapper Classes - Creation - Constructor and valueOf 
 
Step 10 - Java Wrapper Classes - Auto Boxing and a Few Wrapper Constants - SIZE 
 
Step 11 - Java Dates - Introduction to LocalDate LocalTime and LocalDateTime 
 
Step 12 - Java Dates - Exploring LocalDate - Creation and Methods to play with D 
 
Step 13 - Java Dates - Exploring LocalDate - Comparing Dates and Creating Specif 
 
Eclipse Tip - Exploring Java API 
 
Step 14 - Java Reference Types - Conclusion 
 
Coding Exercise: Count uppercase letters in a String 
 
Solution Video For Coding Exercise - Count uppercase letters in a String 
 
Coding Exercise: Does a String have two consecutive identical characters 
 
Solution Video For Coding Exercise - Does a String have two consecutive chars? 
 
Coding Exercise: Right most Digit in a String 
 
Solution Video For Coding Exercise - Right most Digit in a String 
 
Coding Exercise: Longest Word Finder 
 
Solution Video For Coding Exercise - Longest Word Finder 
 
Reviewing Regularly is the Key 
 
Step 00 - Introduction to Array and ArrayList - Section Introduction with a Chal 
 
Step 01 - Understanding the need and Basics about an Array 
 
Step 02 - Java Arrays - Creating and Accessing Values - Introduction 
 
Step 03 - Java Arrays - Puzzles - Arrays of Objects Primitive Data Types toStr 
 
Step 04 - Java Arrays - Compare Sort and Fill 
 
Step 05 - Java Arrays - Exercise - Create Student Class - Part 1 - Total and Ave 
 
Step 06 - Java Arrays - Exercise - Create Student Class - Part 2 - Maximum and M 
 
Step 07 - Introduction to Variable Arguments - Need 
 
Step 08 - Introduction to Variable Arguments - Basics 
 
Step 09 - Introduction to Variable Arguments - Enhancing Student Class 
 
Step 10 - Java Arrays - Using Person Objects and String Elements with Exercises 
 
Eclipse Tip - Code Generation 
 
Step 11 - Java String Arrays - Exercise Solutions - Print Day of Week with Most 
 
Step 12 - Adding and Removing Marks - Problem with Arrays 
 
Step 13 - First Look at ArrayList - An Introduction 
 
Step 14 - First Look at ArrayList - Refactoring Student Class to use ArrayList 
 
Step 15 - First Look at ArrayList - Enhancing Student Class with Add and Remove 
 
Step 16 - Introduction to Array and ArrayList - Conclusion 
 
DO NOT SKIP - FLASH CARDS 
 
Understanding Importance of Deep Work 
 
Reminder - My 10 Rules for Happy Programmers 
 
Coding Exercise: Is There a Greater Element 
 
Solution Video For Coding Exercise - Is There a Greater Element 
 
Coding Exercise: Find Second Largest Element 
 
Solution Video For Coding Exercise - Find Second Largest Element 
 
Coding Exercise: Are Sum of Arrays Equal 
 
Solution Video For Coding Exercise - Are Sum of Arrays Equal 
 
Coding Exercise: Check if an Array is Sorted 
 
Solution Video For Coding Exercise - Check if an Array is Sorted 
 
Coding Exercise: Reverse an Array 
 
Solution Video For Coding Exercise - Reverse an Array 
 
Coding Exercise: Return Factors Of A Number in an ArrayList 
 
Solution Video For Coding Exercise - Return Factors Of A Number in an ArrayList 
 
Coding Exercise: Return ArrayList with multiples of a given number less than a specified limit 
 
Solution Video For Coding Exercise - Return ArrayList with multiples of a number 
 
HALF WAY STAGE How to take care of yourselves 
 
Step 00 - Object Oriented Programming - Level 2 - Section Introduction 
 
Step 01 - Basics of Designing a Class - Class Object State and Behavior 
 
Step 02 - OOPS Example - Fan Class - Deciding State and Constructors 
 
Step 03 - OOPS Example - Fan Class - Deciding Behavior with Methods 
 
Step 04 - OOPS Exercise - Rectangle Class 
 
Step 05 - Understanding Object Composition with Customer Address Example 
 
Step 06 - Understanding Object Composition - An Exercise - Books and Reviews 
 
Step 07 - Understanding Inheritance - Why do we need it? 
 
Step 08 - Object is at top of Inheritance Hierarchy 
 
Step 09 - Inheritance and Overriding - with toString() method 
 
Step 10 - Java Inheritance - Exercise - Student and Employee Classes 
 
Step 11 - Java Inheritance - Default Constructors and super() method call 
 
Step 12 - Java Inheritance - Puzzles - Multiple Inheritance Reference Variables 
 
Step 13 - Java Abstract Class - Introduction 
 
Step 14 - Java Abstract Class - First Example - Creating Recipes with Template M 
 
Step 15 - Java Abstract Class - Puzzles 
 
Step 16 - Java Interface - Example 1 - Gaming Console - How to think about Intef 
 
Step 17 - Java Interface - Example 2 - Complex Algorithm - API defined by extern 
 
Step 18 - Java Interface - Puzzles - Unimplemented methods Abstract Classes Va 
 
Step 19 - Java Interface vs Abstract Class - A Comparison 
 
Step 20 - Java Interface Flyable and Abstract Class Animal - An Exercise 
 
Programming Tip - 97 Things every programming should know 
 
Step 21 - Polymorphism - An introduction 
 
Java Coding Exercise - Arithmetic Operations 
 
Solution Video For Coding Exercise - Arithmetic Operations 
 
Java Coding Exercise - Shapes and Area 
 
Solution Video For Coding Exercise - Shapes and Area 
 
Do You Know Your Learning Style 
 
Step 01 - Java Collections - Section Overview with Need For Collections 
 
Step 02 - List Interface - Introduction - Position is King 
 
Step 03 - List Inteface - Immutability and Introduction of Implementations - Arr 
 
Step 04 - List Inteface Implementations - ArrayList vs LinkedList 
 
Programming Tip - Teach Yourselves programming in 10 Years 
 
Step 05 - List Inteface Implementations - ArrayList vs Vector 
 
Step 06 - List Inteface - Methods to add remove and change elements and lists 
 
Step 07 - List and ArrayList - Iterating around elements 
 
Step 08 - List and ArrayList - Choosing iteration approach for printing and dele 
 
Step 09 - List and ArrayList - Puzzles - Type Safety and Removing Integers 
 
Step 10 - List and ArrayList - Sorting - Introduction to Collections sort static 
 
Step 11 - List and ArrayList - Sorting - Implementing Comparable Inteface in Stu 
 
Step 12 - List and ArrayList - Sorting - Providing Flexibility by implementing C 
 
Step 13 - List and ArrayList - A Summary 
 
Step 14 - Set Interface - Introduction - No Duplication 
 
Step 15 - Understanding Data Structures - Array LinkedList and Hashing 
 
Step 16 - Understanding Data Structures - Tree - Sorted Order 
 
Step 17 - Set Interface - Hands on - HashSet LinkedHashSet and TreeSet 
 
Step 18 - Set Interface - Exercise - Find Unique Characters in a List 
 
Step 19 - TreeSet - Methods from NavigableSet - floorlowerupper subSet head 
 
Step 20 - Queue Interface - Process Elements in Order 
 
Step 21 - Introduction to PriorityQueue - Basic Methods and Customized Priority 
 
Step 22 - Map Interface - An Introduction - Key and Value 
 
Step 23 - Map Interface - Implementations - HashMap HashTable LinkedHashMap an 
 
Step 24 - Map Interface - Basic Operations 
 
Step 25 - Map Interface - Comparison - HashMap vs LinkedHashMap vs TreeMap 
 
Step 26 - Map Interface - Exercise - Count occurances of characters and words in 
 
Step 27 - TreeMap - Methods from NavigableMap - floorKey higherKey firstEntry 
 
Step 28 - Java Collections - Conclusion with Three Tips 
 
DO NOT SKIP - FLASH CARDS 
 
Coding Exercise - Anagram Checker 
 
Solution Video For Coding Exercise - Anagram Checker 
 
Coding Exercise - Is Hexadecimal String? 
 
Solution Video For Coding Exercise - Is Hexadecimal String? 
 
Coding Exercise - Word Reverser 
 
Solution Video For Coding Exercise - Word Reverser 
 
Why Should You Embrace a Growth Mindset 
 
Step 01 - Introduction to Generics - Why do we need Generics? 
 
Step 02 - Implementing Generics for the Custom List 
 
Step 03 - Extending Custom List with a Generic Return Method 
 
Step 04 - Generics Puzzles - Restrictions with extends and Generic Methods 
 
Step 05 - Generics and WildCards - Upper Bound and Lower Bound 
 
Step 01 - Introduction to Functional Programming - Functions are First Class Cit 
 
Step 02 - Functional Programming - First Example with Function as Parameter 
 
Step 03 - Functional Programming - Exercise - Loop a List of Numbers 
 
Step 04 - Functional Programming - Filtering - Exercises to print odd and even n 
 
Step 05 - Functional Programming - Collect - Sum of Numbers in a List 
 
Step 06 - Functional Programming vs Structural Programming - A Quick Comparison 
 
Step 07 - Functional Programming Terminology - Lambda Expression Stream and Ope 
 
Step 08 - Stream Intermediate Operations - Sort Distinct Filter and Map 
 
Step 09 - Stream Intermediate Operations - Exercises - Squares of First 10 Map 
 
Step 10 - Stream Terminal Operations - 1 - max operation with Comparator 
 
Step 11 - Stream Terminal Operations - 2 - min collect to List 
 
Step 12 - Optional class in Java - An Introduction 
 
Step 13 - Behind the Screens with Functional Interfaces - Implement Predicate In 
 
Step 14 - Behind the Screens with Functional Interfaces - Implement Consumer Int 
 
Step 15 - Behind the Screens with Functional Interfaces - Implement Function Int 
 
Step 16 - Simplify Functional Programming code with Method References - static a 
 
Step 17 - Functions are First Class Citizens 
 
Step 18 - Introduction to Functional Programming - Conclusion 
 
Coding Exercise - Filter Odd Numbers 
 
Solution Video For Coding Exercise - Filter Odd Numbers 
 
Coding Exercise: Get Cubes of First N Numbers 
 
Solution Video For Coding Exercise - Get Cubes of First N Numbers 
 
Coding Exercises: Length of Course Names 
 
Solution Video For Coding Exercise - Length of Course Names 
 
Coding Exercise: Sum of Squares 
 
Solution Video For Coding Exercise - Sum of Squares 
 
Coding Exercise: Find Max Even Number 
 
Solution Video For Coding Exercise - Find Max Even Number 
 
Step 01 - Introduction to Threads and MultiThreading - Need for Threads 
 
Step 02 - Creating a Thread for Task1 - Extending Thread Class 
 
Step 03 - Creating a Thread for Task2 - Implement Runnable Interface 
 
Step 04 - Theory - States of a Thread 
 
Step 05 - Placing Priority Requests for Threads 
 
Step 06 - Communication between Threads - join method 
 
Step 07 - Thread utility methods and synchronized keyword - sleep yield 
 
Step 08 - Need for Controlling the Execution of Threads 
 
Step 09 - Introduction to Executor Service 
 
Step 10 - Executor Service - Customizing number of Threads 
 
Step 11 - Executor Service - Returning a Future from Thread using Callable 
 
Step 12 - Executor Service - Waiting for completion of multiple tasks using invo 
 
Step 13 - Executor Service - Wait for only the fastest task using invokeAny 
 
Step 14 - Threads and MultiThreading - Conclusion 
 
Step 01 - Introduction to Exception Handling - Your Thought Process during Excep 
 
Step 02 - Basics of Exceptions - NullPointerException and StackTrace 
 
Step 03 - Basics of Handling Exceptions - try and catch 
 
Step 04 - Basics of Handling Exceptions - Exception Hierarchy Matching and Catc 
 
Step 05 - Basics of Handling Exceptions - Need for finally 
 
Step 06 - Basics of Handling Exceptions - Puzzles 
 
Step 07 - Checked Exceptions vs Unchecked Exceptions - An Example 
 
Step 08 - Hierarchy of Errors and Exceptions - Checked and Runtime 
 
Step 09 - Throwing an Exception - Currencies Do Not Match Runtime Exception 
 
Step 10 - Throwing a Checked Exception - Throws in method signature and handling 
 
Step 11 - Throwing a Custom Exception - CurrenciesDoNotMatchException 
 
Step 12 - Write less code with Try with Resources - New Feature in Java 7 
 
Step 13 - Basics of Handling Exceptions - Puzzles 2 
 
Step 14 - Exception Handling - Conclusion with Best Practices 
 
Eclipse Tip - Ctrl or Cmd + 1 
 
DO NOT SKIP - FLASH CARDS 
 
Step 01 - List files and folders in Directory with Files list method 
 
Step 02 - Recursively List and Filter all files and folders in Directory with St 
 
Step 03 - Read content from a File - Files readAllLines and lines methods 
 
Step 04 - Writing Content to a File - Files write method 
 
Step 05 - Files - Conclusion 
 
Step 01 - Getting started with Synchronized 
 
Step 02 - Problem with Synchronized - Less Concurrency 
 
Step 03 - Enter Locks with ReEntrantLock 
 
Step 04 - Introduction to Atomic Classes - AtomicInteger 
 
Step 05 - Need for ConcurrentMap 
 
Step 06 - Implementing an example with ConcurrentHashMap 
 
Step 07 - ConcurrentHashMap uses different locks for diferrent regions 
 
Step 08 - CopyOnWrite Concurrent Collections - When reads are more than writes 
 
Java Tip 01 - Imports and Static Imports 
 
Java Tip 03 - equals method 
 
Java Tip 04 - hashcode method 
 
Java Tip 05 - Class Access Modifiers - public and default 
 
Java Tip 06 - Method Access Modifiers - public protected private and default 
 
Java Tip 07 - Final classes and Final methods 
 
Java Tip 08 - Final Variables and Final Arguments 
 
Java Tip 09   Why do we need static variables? 
 
Java Tip 09 - Why do we need static methods? 
 
Java Tip 10 - Static methods cannot use instance methods or variables 
 
Java Tip 11 - public static final - Constants 
 
Java Tip 12 - Nested Classes - Inner Class vs Static Nested Class 
 
Java Tip 13 - Anonymous Classes 
 
Java Tip 14 - Why Enum and Enum Basics - ordinal and values 
 
Java Tip 15 - Enum - Constructor variables and methods 
 
Java Tip 16 - Quick look at inbuild Enums - Month DayOfWeek 
 
Step 01 - Understanding Java Versions - 10000 Feet Overview 
 
Step 02 - Understanding Java New Features - An Overview 
 
Step 03 - Getting Started with Java Modularization 
 
Step 04 - Java Modularization - 01 - Building Service and Consumer 
 
Step 05 - Java Modularization - 02 - Splitting Service and Consumer into JARs 
 
Step 06 - Java Modularization - 03 - Splitting Service and Consumer into Modules 
 
Step 07 - Java Modularization - 04 - A Quick Review 
 
Step 08 - Exploring New Java API - List Set and Map - copyOf methods 
 
Step 09 - Exploring New Java API - Files - readString and writeString methods 
 
Step 10 - Exploring New Java API - Predicate - not method 
 
Step 11 - Exploring New Java API - String Utility Methods 
 
Step 12 - Exploring Java New Features - Local Variable Type Inference 
 
Step 13 - Exploring Java New Features - Switch Expression 
 
Step 14 - Exploring Java New Features - Text Blocks 
 
Step 15 - Exploring Java New Features - Records 
 
DO NOT SKIP - FLASH CARDS 
 
CODE BACKUP and STEP BY STEP CHANGES : For Coding Reference and Debugging 
 
Step 01 - Understanding the Need for Java Spring Framework 
 
Step 02 - Getting Started with Java Spring Framework 
 
Step 03 - Creating a New Spring Framework Project with Maven and Java 
 
Step 04 - Getting Started with Java Gaming Application 
 
Step 05 - Understanding Loose Coupling and Tight Coupling 
 
Step 06 - Introducing Java Interface to Make App Loosely Coupled 
 
Step 07 - Bringing in Spring Framework to Make Java App Loosely Coupled 
 
Step 08 - Your First Java Spring Bean and Launching Java Spring Configuration 
 
Step 09 - Creating More Java Spring Beans in Spring Java Configuration File 
 
Step 10 - Implementing Auto Wiring in Spring Framework Java Configuration File 
 
Step 11 - Questions about Spring Framework - What will we learn? 
 
Step 12 - Understanding Spring IOC Container: Application Context & Bean Factory 
 
Step 13 - Exploring Java Bean vs POJO vs Spring Bean 
 
Step 14 - Spring Framework Bean Auto Wiring - Primary and Qualifier Annotations 
 
Step 15 - Using Spring Framework to Manage Beans for Java Gaming App 
 
Step 16 - More Questions about JAva Spring Framework - What will we learn? 
 
Step 17 - Exploring Spring Framework With Java - Section 1 - Review 
 
Step 01 - Getting Spring Framework to Create and Manage Your Java Objects 
 
CODE BACKUP and STEP BY STEP CHANGES : For Coding Reference and Debugging 
 
Step 02 - Exploring Primary and Qualifier Annotations for Spring Components 
 
Step 03 - Primary and Qualifier - Which Spring Annotation Should You Use? 
 
Step 04 - Exploring Spring Framework - Different Types of Dependency Injection 
 
Step 05 - Java Spring Framework - Understanding Important Terminology 
 
Step 06 - Java Spring Framework - Comparing @Component vs @Bean 
 
Step 07 - Why do we have dependencies in Java Spring Applications? 
 
Step 08 - Exercise: Solution for Real World Java Spring Framework Example 
 
Step 09 - Exploring Spring Framework With Java - Section 2 - Review 
 
CODE BACKUP and STEP BY STEP CHANGES : For Coding Reference and Debugging 
 
Step 01 - Exploring Lazy and Eager Initialization of Spring Framework Beans 
 
Step 02 - Comparing Lazy Initialization vs Eager Initialization 
 
Step 03 - Exploring Java Spring Framework Bean Scopes - Prototype and Singleton 
 
Step 04 - Comparing Prototype vs Singleton - Spring Framework Bean Scopes 
 
Step 05 - Exploring Spring Beans - PostConstruct and PreDestroy 
 
Step 06 - Evolution of Jakarta EE - Comparing with J2EE and Java EE 
 
Step 07 - Exploring Jakarta CDI with Spring Framework and Java 
 
Step 08 - Exploring Java Spring XML Configuration 
 
Step 09 - Java Annotations vs XML Configuration for Java Spring Framework 
 
Step 10 - Exploring Spring Framework Stereotype Annotations - Component and more 
 
Step 11 - Quick Review - Important Spring Framework Annotations 
 
Step 12 - Quick Review - Important Spring Framework Concepts 
 
Step 13 - Exploring Spring Big Picture - Framework Modules and Projects 
 
Step 01 - Getting Started with Spring Boot - Goals 
 
Step 02 - Setting up New Spring Boot Project with Spring Initializr 
 
Step 03 - Build a Hello World API with Spring Boot 
 
Step 04 - Understanding the World Before Spring Boot - 10000 Feet Overview 
 
Step 05 - Understanding Spring Boot Magic - Spring Boot Starter Projects 
 
Step 06 - Understanding Spring Boot Magic - Auto Configuration 
 
Step 07 - Playing with Spring Boot 
 
Step 08 - Understanding Spring Boot Magic - Embedded Servers 
 
Step 09 - Exploring Spring Boot Actuator 
 
Step 10 - Exploring Spring Boot DevTools 
 
Step 11 - Understanding Spring Boot vs Spring vs Spring MVC 
 
Step 12 - Getting Started with Spring Boot - Review 
 
Step 01 - Getting Started with JPA and Hibernate - Goals 
 
Step 02 - Setting up New Spring Boot Project for JPA and Hibernate 
 
Step 03 - Launching up H2 Console and Creating Course Table in H2 
 
Step 04 - Getting Started with Spring JDBC 
 
Step 05 - Inserting Hardcoded Data using Spring JDBC 
 
Step 06 - Inserting and Deleting Data using Spring JDBC 
 
Step 07 - Querying Data using Spring JDBC 
 
Step 08 - Getting Started with JPA and EntityManager 
 
Step 09 - Exploring the Magic of JPA 
 
Step 10 - Getting Started with Spring Data JPA 
 
Step 11 - Exploring features of Spring Data JPA 
 
Step 12 - Understanding difference between Hibernate and JPA 
 
Step 01 - What is JUnit and Unit Testing 
 
Step 02 - Your First JUnit Project and Green Bar 
 
Step 03 - Your First Code and First Unit Test 
 
Step 04 - Exploring other assert methods 
 
Step 05 - Exploring few important JUnit annotations 
 
Step 01 - Introduction to Maven 
 
Step 02 - Creating a Spring Boot Project with Maven 
 
Step 03 - Exploring Maven pom.xml for Spring Boot Project 
 
Step 04 - Exploring Maven Parent Pom for Spring Boot Project 
 
Step 05 - Exploring Maven Further 
 
Step 06 - Exploring Maven Build Lifecycle with a Spring Boot Project 
 
Step 07 - How does Maven Work? 
 
Step 08 - Playing with Maven Commands 
 
Step 09 - How are Spring Projects Versioned? 
 
Step 01 - Getting Started - Simple REST API with Spring Boot and Spring Data JPA 
 
Step 02 - Integrating Spring Boot with  Data JPA and in memory database H2 
 
Step 03 - JDBC to Spring JDBC to JPA to Spring Data JPA - 10000 Feet Overview 
 
Course Update: Additional Configuration for Spring Data JPA 
 
Step 04 - Mapping Course Entity and Populating Data with data sql 
 
Step 05 - Creating Repository to manage Entity and integrating with GET REST API 
 
Step 06 - Understanding REST API - 10000 Feet Overview 
 
Step 07 - Building REST API to retrieve details of a course - GET 
 
Step 08 - Building REST API to create a new course - POST 
 
Step 09 - Building REST API to update a course - PUT 
 
Step 10 - Building REST API to delete a course - DELETE 
 
Step 11 - OPTIONAL HANDS ON - Using Docker to Launch MySQL - An Overview 
 
Step 12 - OPTIONAL HANDS ON - Installing Docker 
 
Notes for Next Lecture - Docker and MySQL Configuration 
 
Step 13 - OPTIONAL HANDS ON - Using Docker to Launch MySQL 
 
Reference : Code at the end of the section