Want to level-up your Java skills and reach the advanced level? Want to become an in-demand Java developer for exciting software companies? This course is exactly what you need. I’ll help you expand your programming skills and equip you with techniques that you can immediately put into practice.
Ultimate Java Part 3: Advanced Topics
Ultimate Java Part 3: Advanced Topics is a 113-lesson 6 hours 28 minutes self-paced course by Mosh Hamedani (Code with Mosh). Want to level-up your Java skills and reach the advanced level?
Course facts
- Lessons
- 113
- Duration
- 6 hours 28 minutes
- Language
- English
- Released
- November 2019
- Added to CourseFlix
- April 2024
- Instructor
- Mosh Hamedani (Code with Mosh)
- Price
- Premium
Before you start
Is it still current?
Recorded in 2019. Everything here is still standard Java: exceptions (lessons 3–14), generics (15–27), the collections framework (28–41), lambdas and functional interfaces (42–58), streams (59–74), threads and synchronization (75–93) and CompletableFuture (94–113). It predates virtual threads, final in Java 21 (JEP 444). The thread pools in lessons 95–96 still work; for many blocking I/O tasks, also look at Executors.newVirtualThreadPerTaskExecutor().
What you end up with
Short, focused lessons with code examples, not one app. Lessons 110–113 are a small project: a best price finder that gets quotes from several sources asynchronously with CompletableFuture, with random delays added in the last lesson. Lessons 101–109 lead into it: an async API, composing and combining futures, waiting for all or the first task, and timeouts.
Pick this or…
- Ultimate Java Part 2: Object-oriented Programming: if classes, interfaces and inheritance are still shaky. 63 lessons, 3 h 41 min.
- Java Programming Masterclass covering Java 11 & Java 17: if you want one long course from the basics up. Recorded in 2019, 398 lessons, 80 h 13 min.
You’ll be able to:
- Write Java code with confidence
- Master advanced Java constructs
- Stay up-to-date with the modern Java features
- Become a better Java developer
What You'l Learn...
- Exception handling
- Generics
- Collections framework
- Lambda expressions
- Functional interfaces
- Streams
- Multi-threading
- Asynchronous programming
- And much, much more...
Who teaches Ultimate Java Part 3: Advanced Topics? Mosh Hamedani (Code with Mosh)
Mosh Hamedani is the founder of Code with Mosh, one of the highest-volume independent online instructors in software education. He has been publishing courses continuously since the early Udemy era and has taught over a million students across his Udemy catalog and his standalone Code with Mosh platform. His teaching style is patient, rigorously structured, and deliberately beginner-tolerant — the courses are widely cited as some of the most accessible introductions to their respective topics.
The Code with Mosh catalog covers an unusually wide span: web development with HTML / CSS / JavaScript / React / Angular / Node.js, Python and Django, C# and .NET, mobile development with React Native and Flutter, SQL and database fundamentals, and the algorithm / data-structure interview prep tracks. Few independent instructors maintain this much breadth at consistent quality.
The CourseFlix listing under this source carries over 35 Code with Mosh courses spanning that range. Material is paid; Code with Mosh runs on per-course pricing on the original platform. Courses are aimed primarily at developers picking up a new technology from a clean start through to working production proficiency.
What lessons are included in Ultimate Java Part 3: Advanced Topics?
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | 1- Introduction Demo | 00:39 | |
| 2 | 1- Introduction | 00:43 | |
| 3 | 2- What are Exceptions | 03:46 | |
| 4 | 3- Types of Exceptions | 03:41 | |
| 5 | 4- Exceptions Hierarchy | 02:06 | |
| 6 | 5- Catching Exceptions | 03:52 | |
| 7 | 6- Catching Multiple Types of Exceptions | 04:29 | |
| 8 | 7- The finally Block | 04:11 | |
| 9 | 8- The try-with-resources Statement | 02:27 | |
| 10 | 9- Throwing Exceptions | 04:42 | |
| 11 | 10- Re-throwing Exceptions | 03:08 | |
| 12 | 11- Custom Exceptions | 04:19 | |
| 13 | 12- Chaining Exceptions | 04:57 | |
| 14 | 13- Summary | 00:56 | |
| 15 | 1- Introduction | 00:28 | |
| 16 | 2- The Need for Generics | 03:33 | |
| 17 | 3- A Poor Solution | 03:23 | |
| 18 | 4- Generic Classes | 04:28 | |
| 19 | 5- Generics and Primitive Types | 02:25 | |
| 20 | 6- Constraints | 03:26 | |
| 21 | 7- Type Erasure | 04:05 | |
| 22 | 8- Comparable Interface | 05:39 | |
| 23 | 9- Generic Methods | 04:49 | |
| 24 | 10- Multiple Type Parameters | 02:33 | |
| 25 | 11- Generic Classes and Inheritance | 04:18 | |
| 26 | 12- Wildcards | 05:28 | |
| 27 | 13- Summary | 00:56 | |
| 28 | 1- Introduction | 00:35 | |
| 29 | 2- Overview of Collections Framework | 03:09 | |
| 30 | 3- The Need for Iterables | 03:55 | |
| 31 | 4- The Iterable Interface | 05:25 | |
| 32 | 5- The Iterator Interface | 05:27 | |
| 33 | 6- The Collection Interface | 09:36 | |
| 34 | 7- The List Interface | 03:52 | |
| 35 | 8- The Comparable Interface | 04:29 | |
| 36 | 9- The Comparator Interface | 03:52 | |
| 37 | 10- The Queue Interface | 04:48 | |
| 38 | 11- The Set Interface | 05:34 | |
| 39 | 12- Hash Tables | 03:45 | |
| 40 | 13- The Map Interface | 06:27 | |
| 41 | 14- Summary | 00:45 | |
| 42 | 1- Introduction | 00:48 | |
| 43 | 2- Functional Interfaces | 03:52 | |
| 44 | 3- Anonymous Inner Classes | 01:24 | |
| 45 | 4- Lambda Expressions | 03:44 | |
| 46 | 5- Variable Capture | 01:57 | |
| 47 | 6- Method References | 03:47 | |
| 48 | 7- Built-in Functional Interfaces | 01:43 | |
| 49 | 8- The Consumer Interface | 04:07 | |
| 50 | 9- Chaining Consumer | 04:29 | |
| 51 | 10- The Supplier Interface | 02:31 | |
| 52 | 11- The Function Interface | 03:01 | |
| 53 | 12- Composing Functions | 04:20 | |
| 54 | 13- The Predicate Interface | 02:03 | |
| 55 | 14- Combining Predicates | 02:11 | |
| 56 | 15- The BinaryOperator Interface | 03:16 | |
| 57 | 16- The UnaryOperator Interface | 01:14 | |
| 58 | 17- Summary | 00:41 | |
| 59 | 1- Introduction | 00:42 | |
| 60 | 2- Imperative vs Functional Programming | 06:25 | |
| 61 | 3- Creating a Stream | 05:02 | |
| 62 | 4- Mapping Elements | 05:25 | |
| 63 | 5- Filtering Elements | 03:00 | |
| 64 | 6- Slicing Streams | 04:22 | |
| 65 | 7- Sorting Streams | 05:13 | |
| 66 | 8- Getting Unique Elements | 02:10 | |
| 67 | 9- Peeking Elements | 03:20 | |
| 68 | 10- Simple Reducers | 03:38 | |
| 69 | 11- Reducing a Stream | 04:13 | |
| 70 | 12- Collectors | 06:04 | |
| 71 | 13- Grouping Elements | 04:52 | |
| 72 | 14- Partitioning Elements | 02:11 | |
| 73 | 15- Primitive Type Streams | 01:26 | |
| 74 | 16- Summary | 00:40 | |
| 75 | 1- Introduction | 00:56 | |
| 76 | 2- Processes and Threads | 03:08 | |
| 77 | 3- Starting a Thread | 03:15 | |
| 78 | 4- Pausing a Thread | 02:36 | |
| 79 | 5- Joining a Thread | 02:28 | |
| 80 | 6- Interrupting a Thread | 02:55 | |
| 81 | 7- Concurrency Issues | 02:09 | |
| 82 | 8- Race Conditions | 05:54 | |
| 83 | 9- Strategies for Thread Safety | 02:51 | |
| 84 | 10- Confinement | 03:41 | |
| 85 | 11- Locks | 03:18 | |
| 86 | 12- The synchronized Keyword | 05:14 | |
| 87 | 13- The volatile Keyword | 06:34 | |
| 88 | 14- Thread Signalling with wait() and notify() | 03:36 | |
| 89 | 15- Atomic Objects | 03:26 | |
| 90 | 16- Adders | 02:10 | |
| 91 | 17- Synchronized Collections | 03:25 | |
| 92 | 18- Concurrent Collections | 02:38 | |
| 93 | 19- Summary | 01:19 | |
| 94 | 1- Introduction | 00:39 | |
| 95 | 2- Thread Pools | 01:47 | |
| 96 | 3- Executors | 06:51 | |
| 97 | 4- Callables and Futures | 05:01 | |
| 98 | 5- Asynchronous Programming | 01:51 | |
| 99 | 6- Completable Futures | 01:39 | |
| 100 | 7- Creating a Completable Future | 03:43 | |
| 101 | 8- Implementing an Asynchronous API | 04:19 | |
| 102 | 9- Running Code on Completion | 04:05 | |
| 103 | 10- Handling Exceptions | 04:16 | |
| 104 | 11- Transforming a Completable Future | 04:35 | |
| 105 | 12- Composing Completable Futures | 06:09 | |
| 106 | 13- Combining Completable Futures | 04:33 | |
| 107 | 14- Waiting for Many Tasks to Complete | 02:49 | |
| 108 | 15- Waiting for the First Task | 02:14 | |
| 109 | 16- Handling timeouts | 02:25 | |
| 110 | 17- Project- Best Price Finder | 01:19 | |
| 111 | 18- Solution- Getting a Quote | 04:16 | |
| 112 | 19- Solution- Getting Many Quotes | 04:50 | |
| 113 | 20- Solution- Random Delays | 04:28 |
One payment unlocks this course and every other premium course. No auto-renew.
See plansRecommended next
What courses are similar to Ultimate Java Part 3: Advanced Topics?
Updated 2y agoAlgorithms in Java: Live problem solving & Design Techniques
By: UdemyAlgorithm Design Techniques: Live problem-solving in Java. Algorithms are everywhere. One great algorithm applied sensibly can result in a System like GOOGLE! C19h 41m
Updated 1mo agoRecursion, Backtracking and Dynamic Programming in Java
By: UdemyMaster recursion, backtracking, dynamic programming, and divide-and-conquer in Java through classic problems like N-Queens and knapsack.9h 46m
Updated 2y agoSpring Security 6 Zero to Master along with JWT,OAUTH2
By: Udemy'Spring Security Zero to Master' course will help in understanding the Spring Security Architecture, important packages, interfaces, classes inside it which ha14h 50m5/5
Updated 1mo agoData Structures & Algorithms !
By: UdemyBuild up data structures and algorithms knowledge in Java from the basics to intermediate level, with a focus on real problem-solving.28h 40m5/5
Updated 2y agoExperience Design Patterns In Java
By: UdemyBoost your software designs by taking this content-rich and hands on fully featured training course. This course will give you insight in the more than 20+ desi7h 19m
Updated 2y agoJava Test Automation Engineer - from Zero to Hero
By: UdemyAre you ready to embark on an exciting journey to become a Test Automation Hero in Java? Whether you're new to programming or have some experience, this course18h 40m
Updated 1mo agoData Structures & Algorithms: Part 1
By: Mosh Hamedani (Code with Mosh)Mosh Hamedani breaks down data structures and algorithms as practical problem-solving patterns, the same skills tested in top tech interviews.4h 39m5/5
Updated 2y agoOracle Java Certification - Pass the Associate 1Z0-808 Exam.
By: UdemySo you've learnt some Java, but are struggling to get an interview, let alone a job. Or you are stuck in a low paying programming job, and want to move up to a20h 8m
More courses by Mosh Hamedani (Code with Mosh)
ClassicReact: Intermediate Topics
Advance your React skills with the Intermediate Topics course. Learn state management, routing, and best practices for building complex applications using React6h 5m4/5
Updated 3y agoThe Ultimate Django Series: Part 3
Master advanced techniques and best practices for building professional-quality backends.4h 18m
FreeUpdated 3y agoUltimate C++ Part 3: Advanced
To take this course, you should have watched the first two parts or have a thorough understanding of the concepts covered there.3h 41m5/5
Updated 1mo agoXamarin Forms: Build Native Mobile Apps with C#
Build native iOS, Android, and Windows apps from one C# codebase with Xamarin Forms, taught step by step by Mosh Hamedani.7h 17m
Updated 3y agoMastering Next.js 13 with TypeScript
Clear. Concise. Comprehensive. Tired of piecing together disconnected tutorials or dealing with rambling, confusing instructors? This course is for you! It's pe5h 16m5/5
Updated 3y agoThe Ultimate Redux Course
Redux is the most popular state management library for JavaScript apps. It's mostly used with React but it's also becoming popular in Angular, Ember and Vue com6h 5m5/5