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 1mo agogRPC [Java] Master Class: Build Modern API & Micro services
By: UdemyLearn gRPC in Java: proto files, Unary and Streaming calls, and building a Greet and Calculator service from scratch with hands-on exercises.5h 9m
Updated 3y agoData Structures and Algorithms: Deep Dive Using Java
By: UdemySo you've worked with the basics of data structures and algorithms in Java (or another OO programming language) but feel like you need a deeper knowledge15h 53m
Updated 2y agoJava from Zero to First Job, Practical Guide, 2000+ examples
By: UdemyWelcome to the fundamental and the most complete course 'Java from Zero to First Job'. As it's declared in the course name, it's created for people who want to80h 4m
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 3y agoJava Design Patterns & SOLID Design Principles
By: UdemyThis course starts with SOLID Design Principles in Java. It will then provide a comprehensive introduction to Java Design patterns with practical.17h 5m
Updated 2y agoRESTful Web Services, Java, Spring Boot, Spring MVC and JPA
By: UdemyThis video course also covers the H2 in-memory database and teaches how to build RESTful Web Service that stores data in a database without a need to install My25h 8m
Updated 2y agoBuilding Your First App with Spring Boot and Angular
By: PluralsightSpring Boot and Angular have forever changed how web applications are built. Understanding how they work is essential for any full-stack developer. In this cour2h 22m5/5
Updated 1mo agoData Structures in Java
By: Java SpecialistsEight hours of practical Java data structures taught through professional-grade tips, backed by 130+ quiz questions to test retention.8h 3m
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