Grokking Java Intermediate
Learn object-oriented Java, generics, and the collections framework, then regex, file handling, and multithreading, with runnable code in every lesson.

Course Overview
Grokking Java Intermediate teaches how real Java programs are organized. It starts where Grokking Java Basics ends. You will learn object-oriented programming from the ground up: classes, objects, constructors, encapsulation, inheritance, polymorphism, abstraction, and interfaces. The course then covers Java core classes, generics, and the collections framework, including lists, sets, queues, and maps. It ends with regular expressions, file handling, and multithreading. Every lesson includes code that you can edit and run in the browser, and each chapter ends with a quiz. The course is for learners who know Java syntax and want to write well-structured programs. If you are new to Java, take Grokking Java Basics first. The course does not cover the Stream API, databases, or web frameworks like Spring. By the end, you will be able to design classes, choose the right collection for a task, and read the kind of Java found in real projects.
What you'll learn in Grokking Java Intermediate
- Model real data with classes and objects, member variables, and methods, the core of object-oriented Java.
- Use the this and static keywords correctly, and know when a variable or method belongs to the class.
- Reuse code with inheritance and the super keyword in single, multilevel, and hierarchical class trees.
- Design with abstract classes and interfaces, and get multiple inheritance of behavior through interfaces.
- Write type-safe code with generic methods, generic classes, and bounded types, and see how generics work at runtime.
- Order elements with the Comparator interface and walk through any collection with an iterator.
- Create, read, write, and delete files, and run tasks concurrently with threads and synchronization.
- Initialize objects with default, parameterized, overloaded, and copy constructors, and chain them with this.
- Protect data with packages, access modifiers, and encapsulation.
- Write flexible code with method overloading, method overriding, and runtime polymorphism.
- Use Java core classes: Object, the utility classes, the date and time classes, and the wrapper classes.
- Choose the right collection: ArrayList, LinkedList, HashSet, TreeSet, PriorityQueue, ArrayDeque, HashMap, and TreeMap.
- Match and extract text with regular expressions using the Pattern and Matcher classes.
Course Content
Object-Oriented Programming Basics
Constructors in Java
The this and static Keywords in Java
Encapsulation in Java
Polymorphism in Java
Abstraction and Interfaces in Java
Lists in Java Collections
Queue in Java Collections
Maps in Java
Java Multithreading
Introduction to Threads in Java
Java Thread Class
Java Runnable Interface
Lifecycle and States of a Thread in Java
Basics of Thread Synchronization
Java Thread Priority
Design Patterns Related to Thread Synchronization
ConcurrentHashMap Internals
Quiz
What people say about our courses






About the Author

Arslan Ahmad
Industry Expertise & Leadership
Arslan Ahmad is the lead author of Grokking Java Intermediate. As the founder of Design Gurus and a former FAANG hiring manager, he has worked at industry giants like Facebook (now Meta) and Microsoft.
He has conducted hundreds of system design interviews, giving him unique insight into what top tech companies look for in candidates.
The course also incorporates expertise from senior engineers at Google, Meta, Amazon, Microsoft, and Uber, ensuring you learn system design best practices from professionals who have built and scaled real-world systems.
500+
Interviews Conducted
10k+
Students Taught
Related Courses
$197
$48
$48
FAQs
What is Grokking Java Intermediate?
It is the second Java course on Design Gurus, and it starts where Grokking Java Basics ends. It covers object-oriented programming, Java core classes, generics, the collections framework, regular expressions, file handling, and multithreading.
Who is this course for?
It is for learners who have finished Grokking Java Basics or already know Java syntax, for developers coming to Java from another language who need its object-oriented model and collections, and for students who want a structured path past the basics.
What do I need to know before I start?
You should be comfortable with variables, data types, operators, conditionals, loops, methods, arrays, strings, and exception handling. Grokking Java Basics teaches all of these, and we recommend taking it first if any of them are unfamiliar.
How is it different from Grokking Java Basics?
Java Basics teaches the core language: syntax, types, control flow, methods, arrays, and strings. This course teaches how real Java programs are organized and what they are built from, like classes, interfaces, generics, and the collections framework.
Does the course cover the collections framework?
Yes. It covers lists (ArrayList, LinkedList, Vector, and Stack), sets (HashSet and TreeSet), queues (PriorityQueue and ArrayDeque), and maps (HashMap, LinkedHashMap, and TreeMap), along with iterators and the Comparator interface.
What does the course not cover?
It does not teach the Stream API, lambda expressions, enums, records, database access, or frameworks like Spring. It focuses on the object-oriented core and the standard library that those topics build on.
Is this an interview preparation course?
No. It teaches the language. Object-oriented design and the collections framework appear in almost every Java interview solution, though, so the course is a strong foundation before you practice coding problems in Java.
Is there any practice, or is it only reading?
Every lesson includes code examples that you can edit and run in the browser, and every chapter after the introduction ends with a quiz on its topics.
Is the course text-based or video-based?
It is text-based, with runnable code in the lessons. You read an explanation, change the example, run it, and see the result without pausing or rewinding anything.
Do I get a certificate of completion?
Yes. Design Gurus issues a certificate once you have completed the course, and you can share the link directly or add it to your LinkedIn profile.
