Welcome to Amigoscode's most comprehensive Java course! It includes everything you need to gain a complete understanding of Java, code well and build your own applications. Earlier this year, I taught a Java Bootcamp in London for over a year. Then an idea struck me: why not bring all this value to Amigoscode's community in the form of a Master Class? Thanks to six months of preparation and an amazing effort by Amigoscode's team, I am excited to announce that we have surpassed our goal and also included features that will help you master the language within the shortest possible time:
Java Master Class
About the Author: Nelson Djalo (Amigoscode)
Nelson Djalo publishes the Amigoscode YouTube channel and standalone course platform — one of the largest independent Java / Spring Boot tutorial sources online, with several million subscribers and a multi-year track record of weekly back-end engineering tutorials.
The course catalog covers the full Java back-end stack: Java fundamentals, Spring Boot for production web services, Spring Security and OAuth, Spring Data and JPA, microservices patterns with Spring Cloud, Kafka and event-driven architecture, Docker and Kubernetes for the deployment layer, AWS for cloud infrastructure, and the database side (PostgreSQL, MongoDB, Redis). Material is project-oriented — most courses build a working microservice or full application end-to-end.
The CourseFlix listing under this source carries over 13 Amigoscode courses spanning that range. Material is paid; Amigoscode runs on per-course or membership pricing on the original platform. Courses are aimed at Java developers building production back-end services.
Watch Online 357 lessons
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Intro Demo | 02:34 | |
| 2 | Practice Practice Practice | 01:03 | |
| 3 | Textbook | 04:15 | |
| 4 | Discord | 02:46 | |
| 5 | What is Java | 03:51 | |
| 6 | What can you build with Java | 02:56 | |
| 7 | Java Usages | 06:21 | |
| 8 | Compliled vs Interpreted Languages | 05:11 | |
| 9 | Static vs Dynamic Type Checking | 05:23 | |
| 10 | Java version history | 05:10 | |
| 11 | IntelliJ IDEA | 03:26 | |
| 12 | jetbrains.com/idea | 04:48 | |
| 13 | Jetbrains ToolBox | 03:20 | |
| 14 | Quick Word Before We Begin | 01:38 | |
| 15 | Create Project - Part 1 | 04:53 | |
| 16 | Create Project - Part 2 | 03:11 | |
| 17 | Your First Java Program | 02:24 | |
| 18 | Compiling and Running via Terminal | 03:35 | |
| 19 | Fixing Compilation Errors | 04:41 | |
| 20 | View ByteCode | 02:07 | |
| 21 | Public Static Void Main | 02:46 | |
| 22 | Understanding Java Code | 03:07 | |
| 23 | SOUT Keyboard Shortcut | 01:47 | |
| 24 | Reserved Keywords | 01:57 | |
| 25 | Comments | 02:28 | |
| 26 | Variables | 03:59 | |
| 27 | Primitives Data Types Difference | 04:55 | |
| 28 | Numeric Literals with Underscore | 01:43 | |
| 29 | Arithmetic Operators | 03:05 | |
| 30 | Increment and Decrement Operators | 04:38 | |
| 31 | Comparison Operators | 02:43 | |
| 32 | Short hand re-assignment | 03:21 | |
| 33 | Naming Variables | 03:09 | |
| 34 | Strings | 06:38 | |
| 35 | String API Documentation | 02:08 | |
| 36 | Reference Types and Objects | 05:04 | |
| 37 | Reference Types and Objects Diferences | 06:16 | |
| 38 | Pass py value with Primitives | 04:21 | |
| 39 | Pass py value with Reference Types | 06:31 | |
| 40 | Arrays | 07:43 | |
| 41 | 0 and Null Values for Arrays | 03:20 | |
| 42 | Quick word on Arrays | 01:22 | |
| 43 | TextBook and Exercises | 03:23 | |
| 44 | How To Attempt Exercises | 06:54 | |
| 45 | Quick word on the CLI Project | 00:36 | |
| 46 | For Loop | 05:03 | |
| 47 | Loops and Arrays | 03:33 | |
| 48 | Enhanced For Loop | 02:38 | |
| 49 | For i vs Enhanced For Loop | 02:02 | |
| 50 | While Loop | 03:06 | |
| 51 | Do While | 02:38 | |
| 52 | If Statements | 03:16 | |
| 53 | If Statements with Conditions | 02:24 | |
| 54 | Else If | 03:30 | |
| 55 | AND Logical Operators | 03:52 | |
| 56 | OR Logical Operators | 04:10 | |
| 57 | Logical Operators Recap | 02:49 | |
| 58 | ! on ifs | 01:37 | |
| 59 | Dont do this with if statements | 01:04 | |
| 60 | Switch Statement | 04:28 | |
| 61 | Data Types for Enums | 02:32 | |
| 62 | New Switch Expression | 03:55 | |
| 63 | Packages | 02:24 | |
| 64 | Creating Packages | 03:47 | |
| 65 | Exploring Packages | 03:01 | |
| 66 | Import keyword | 06:01 | |
| 67 | Optmizing imports | 00:50 | |
| 68 | Import with fully qualified name | 03:49 | |
| 69 | No Import for java lang | 01:46 | |
| 70 | Access Modifiers Intro | 01:02 | |
| 71 | Public Access Modifier | 05:18 | |
| 72 | Private | 02:26 | |
| 73 | Default | 04:34 | |
| 74 | Recap | 06:25 | |
| 75 | When To Use Each Access Modifier | 01:35 | |
| 76 | Static Keyword | 07:18 | |
| 77 | Methods | 03:22 | |
| 78 | Method that add 2 numbers | 05:12 | |
| 79 | Parameters and Arguments | 01:35 | |
| 80 | Void methods | 05:23 | |
| 81 | Naming Convention | 03:29 | |
| 82 | Exercise | 01:25 | |
| 83 | Exercise Solution | 04:07 | |
| 84 | Understanding public static void main | 06:51 | |
| 85 | Program Arguments | 05:03 | |
| 86 | Type Inference with Var | 06:42 | |
| 87 | Break Keyword and Loops | 02:18 | |
| 88 | Continue | 03:14 | |
| 89 | Return Keyword and Void Methods | 02:49 | |
| 90 | Final Keyword | 06:24 | |
| 91 | Enums | 09:06 | |
| 92 | Enums Methods | 04:08 | |
| 93 | Implicit and Explicit Type Casting | 04:33 | |
| 94 | Global and Local Variables | 07:04 | |
| 95 | Wrapper Classes | 06:32 | |
| 96 | Working With Strings | 08:45 | |
| 97 | How Strings are stored in memory | 04:04 | |
| 98 | Strings are Immutable | 02:36 | |
| 99 | String Literal vs String Object | 04:14 | |
| 100 | Comparing Strings with == | 04:41 | |
| 101 | Comparing Strings with .equals | 02:10 | |
| 102 | Useful String static Methods | 05:18 | |
| 103 | LocalDateTime | 03:54 | |
| 104 | LocalDate and LocalTime | 02:43 | |
| 105 | Creating Specif Dates | 04:56 | |
| 106 | ZoneIds | 04:05 | |
| 107 | Other Date Classes | 04:42 | |
| 108 | The Problem With double | 02:06 | |
| 109 | BigDecimal | 02:16 | |
| 110 | Exploring BigDecimal Methods | 04:37 | |
| 111 | Scanner | 04:14 | |
| 112 | NextInt and other data types | 03:28 | |
| 113 | Outro | 01:07 | |
| 114 | Intro | 02:17 | |
| 115 | What is an exception | 04:10 | |
| 116 | Try Catch | 04:31 | |
| 117 | Multiple Catch Blocks | 04:15 | |
| 118 | Using Or Within Catch | 02:37 | |
| 119 | The Exception Class | 07:09 | |
| 120 | Finally Keyword | 02:06 | |
| 121 | Exception Hierarchy | 08:11 | |
| 122 | Uncheck Exceptions | 05:20 | |
| 123 | Checked Exceptions | 06:59 | |
| 124 | Throw and Throws | 06:34 | |
| 125 | Throwing Exceptions | 08:25 | |
| 126 | When To Use Checked VS Unchecked Exeptions | 01:33 | |
| 127 | Creating Custom Exceptions | 06:31 | |
| 128 | Creating Files | 06:02 | |
| 129 | Writing To Files | 08:27 | |
| 130 | Reading from Files | 04:09 | |
| 131 | Try with Resources | 04:40 | |
| 132 | Intro | 02:09 | |
| 133 | Your first class | 03:57 | |
| 134 | Setters | 05:44 | |
| 135 | Getters | 02:56 | |
| 136 | Constructors | 04:55 | |
| 137 | Default Constructors | 02:25 | |
| 138 | Multiple Contructors | 04:11 | |
| 139 | ToString | 06:26 | |
| 140 | The Inside Constructors | 03:27 | |
| 141 | The This Keyword | 06:14 | |
| 142 | Everything in Java is an Object | 07:49 | |
| 143 | @Override | 02:53 | |
| 144 | Comparing Objects with == | 04:56 | |
| 145 | Comparing Obects with .equals | 05:13 | |
| 146 | Generating Equals method | 04:02 | |
| 147 | Equals Explained | 06:49 | |
| 148 | Generating Code | 04:14 | |
| 149 | Person and Cats Example | 04:48 | |
| 150 | POJOS | 03:48 | |
| 151 | Java Bean | 05:02 | |
| 152 | Exercise | 03:14 | |
| 153 | Exercise Solution | 09:21 | |
| 154 | Static Keyword | 05:49 | |
| 155 | When to use Static | 06:31 | |
| 156 | Static Initlaization Block | 06:35 | |
| 157 | Instance Block Initializer | 05:18 | |
| 158 | Static Import | 02:36 | |
| 159 | Intro | 01:41 | |
| 160 | Packages | 03:08 | |
| 161 | Models | 04:28 | |
| 162 | Service Classes | 09:31 | |
| 163 | Data Access Object | 08:29 | |
| 164 | Connecting DAO and Service | 08:51 | |
| 165 | N Tier Architecture | 02:42 | |
| 166 | Utitlity Classes | 05:04 | |
| 167 | Intro | 01:26 | |
| 168 | The first CLI project task | 03:09 | |
| 169 | Demo | 04:20 | |
| 170 | Upcoming Section Intro | 02:09 | |
| 171 | Encapsulation | 02:29 | |
| 172 | Encapsulation in Action | 05:07 | |
| 173 | The Problem With Non Private Fields | 06:33 | |
| 174 | Data Hiding | 06:25 | |
| 175 | String Class Encapsulation Example | 04:20 | |
| 176 | What is Inheritance | 02:14 | |
| 177 | Implementing Inheritance | 04:53 | |
| 178 | Create an instance of Programmer | 06:09 | |
| 179 | Super Keyword | 04:20 | |
| 180 | Protected Access Modifier | 02:44 | |
| 181 | Override | 05:57 | |
| 182 | Single and Multi Level Inheritance | 01:11 | |
| 183 | Abstract Keyword on Classes | 04:05 | |
| 184 | Abstract Methods | 04:19 | |
| 185 | A Quick Word Before we move on | 00:34 | |
| 186 | Abstract Classes Example | 15:33 | |
| 187 | What is Polymorphism | 07:44 | |
| 188 | Car Bicycle Electric Scooter Example | 04:28 | |
| 189 | Create Your First Interface | 02:22 | |
| 190 | Implementing Interfaces | 07:01 | |
| 191 | Putting it all together | 07:00 | |
| 192 | Constants | 02:16 | |
| 193 | Default Methods | 05:31 | |
| 194 | CLI Project Exercise | 03:11 | |
| 195 | Don't Do This | 01:25 | |
| 196 | Dependecy Injection | 05:07 | |
| 197 | Dependency Injection In Action | 05:20 | |
| 198 | Singletons and @Inject_@Autowire | 08:05 | |
| 199 | CLI Project Exercise | 01:32 | |
| 200 | SOLID Principles | 03:01 | |
| 201 | Single Responsibitiy | 04:55 | |
| 202 | Open Close | 06:01 | |
| 203 | Liskov | 03:14 | |
| 204 | Interface Segragation | 02:37 | |
| 205 | Dependecy Inversion | 06:15 | |
| 206 | Null Pointer Exception | 06:17 | |
| 207 | The Wrong Way Of Dealing with Null | 03:48 | |
| 208 | Optionals | 10:42 | |
| 209 | Intro | 03:30 | |
| 210 | Overview | 01:58 | |
| 211 | Arrays | 02:37 | |
| 212 | Working With Arrays | 11:28 | |
| 213 | 2D Arrays | 01:38 | |
| 214 | Working with 2D Arrays | 05:43 | |
| 215 | Lists | 01:38 | |
| 216 | Working With Lists and ArrayList | 10:23 | |
| 217 | Stack | 01:53 | |
| 218 | Working With Stacks | 07:07 | |
| 219 | Queue | 01:24 | |
| 220 | Working With Queues | 06:20 | |
| 221 | Linked List | 04:18 | |
| 222 | Working with LinkedList | 08:34 | |
| 223 | Sets | 01:21 | |
| 224 | Working with Sets | 07:33 | |
| 225 | Map Interface Hierarchy | 01:56 | |
| 226 | Maps | 00:42 | |
| 227 | Working With Maps | 09:05 | |
| 228 | HashCode | 02:56 | |
| 229 | Working HashCode and HashFunction | 07:51 | |
| 230 | Outro | 03:18 | |
| 231 | HackerRank Big Notation | 08:37 | |
| 232 | CLI Project Exercise | 01:33 | |
| 233 | Intro | 01:05 | |
| 234 | Class Cast Exception | 04:25 | |
| 235 | ClassCastException Example 2 | 02:31 | |
| 236 | Type Parameter and Type Argument | 06:08 | |
| 237 | Generic Type Naming Convention | 02:25 | |
| 238 | Generic and Classes | 03:45 | |
| 239 | Generic and Classes Part 2 | 06:10 | |
| 240 | Generics and Methods | 08:28 | |
| 241 | Bounded Type Parameters | 09:06 | |
| 242 | Multiple Bounds | 04:24 | |
| 243 | Unbounded Wildcard | 05:06 | |
| 244 | Upper Bounded Wildcards | 03:31 | |
| 245 | Lower Bounded Wildcards | 03:42 | |
| 246 | Difference Between Bounded Type Parameters and Wildcards | 03:23 | |
| 247 | Type Erasure | 02:44 | |
| 248 | Outro | 01:03 | |
| 249 | Intro | 01:15 | |
| 250 | Java Streams | 03:30 | |
| 251 | How Streams Work | 03:27 | |
| 252 | Getting Started With Streams | 06:30 | |
| 253 | Exercise | 00:57 | |
| 254 | Declarative Solution | 01:52 | |
| 255 | Imperative Solution | 04:08 | |
| 256 | Visualise Streams | 02:13 | |
| 257 | Outro | 00:25 | |
| 258 | CLI Exercise | 01:27 | |
| 259 | Maven | 02:55 | |
| 260 | Installing Maven | 02:03 | |
| 261 | Verifying Maven Installation | 00:47 | |
| 262 | Creating a Maven Project | 03:40 | |
| 263 | Maven Folder Structure | 04:09 | |
| 264 | Project Object Model (pom.xml) | 02:48 | |
| 265 | Target Folder | 03:41 | |
| 266 | Installing Maven Dependencies | 07:52 | |
| 267 | Using Java Faker | 03:54 | |
| 268 | .m2 Folder | 05:27 | |
| 269 | Maven Lifecycles | 03:52 | |
| 270 | Running Maven Commands | 06:09 | |
| 271 | Packaging and Jar Files | 04:04 | |
| 272 | CLI Project Exercise | 02:22 | |
| 273 | Intro | 02:49 | |
| 274 | JUnit | 01:21 | |
| 275 | Installing JUNIT | 04:30 | |
| 276 | Launching Your First Test | 04:36 | |
| 277 | Calculator and CalculatorTest Classes | 03:49 | |
| 278 | Writing Your First Unit Test | 05:12 | |
| 279 | Assertions | 02:44 | |
| 280 | Test Scenarios | 03:28 | |
| 281 | Other JUnit Features | 02:19 | |
| 282 | CLI Exercise | 01:18 | |
| 283 | Section Intro | 01:12 | |
| 284 | Intro Spring Boot | 02:31 | |
| 285 | Spring Initializr | 02:56 | |
| 286 | Open the project with IntelliJ | 02:04 | |
| 287 | The pom.xml | 02:27 | |
| 288 | Cleanup Few Things | 02:18 | |
| 289 | JDK | 02:47 | |
| 290 | Your first Spring Boot Application | 04:10 | |
| 291 | Embedded Web Serve | 03:06 | |
| 292 | Configuring Embedded Web Server | 04:48 | |
| 293 | Your first API | 02:53 | |
| 294 | @SpringBootApplication | 06:07 | |
| 295 | Spring Web MVC | 05:46 | |
| 296 | JSON For Java | 07:17 | |
| 297 | Java Objects to JSON Objects | 05:26 | |
| 298 | Introduction to HTTP | 04:12 | |
| 299 | The Evolution of HTTP | 03:15 | |
| 300 | HTTP Request and Response Messages | 03:49 | |
| 301 | HTTP Methods | 04:44 | |
| 302 | HTTP Status Codes | 06:32 | |
| 303 | URL | 09:01 | |
| 304 | API and REST API | 03:38 | |
| 305 | Public APIs and Other Types | 06:37 | |
| 306 | Why build APIs | 02:55 | |
| 307 | Chrome Developer Tools | 07:07 | |
| 308 | Exploring XHR for our API | 04:35 | |
| 309 | Inspecting Instagram Network Activity | 09:29 | |
| 310 | REST Client & Postman | 03:49 | |
| 311 | IntelliJ REST Clients | 05:08 | |
| 312 | CRUD and Section Overview | 02:05 | |
| 313 | Customer Model | 02:29 | |
| 314 | Fake Database | 03:27 | |
| 315 | API Endpoint | 05:54 | |
| 316 | @PathVariable | 07:57 | |
| 317 | N Tier Architecture | 02:02 | |
| 318 | Refactor - Controller Service and DAO | 10:40 | |
| 319 | @RestController @Service @Repository @Component | 07:02 | |
| 320 | Application Context | 04:58 | |
| 321 | Inspecting beans | 05:09 | |
| 322 | Bean Scopes | 02:23 | |
| 323 | Creating Beans | 07:49 | |
| 324 | We are not handling error the right way | 01:56 | |
| 325 | Custom Exception | 05:02 | |
| 326 | @ResponseStatus | 02:28 | |
| 327 | Include error Message to Responses | 02:04 | |
| 328 | Section Intro | 00:51 | |
| 329 | Postgres and Docker | 02:18 | |
| 330 | Verifying Docker Installation | 02:27 | |
| 331 | Postgres DB with Docker compose | 04:26 | |
| 332 | Connecting to Database | 01:34 | |
| 333 | Connecting to DB using IntelliJ IDEA | 03:22 | |
| 334 | Data Source & JPA | 02:30 | |
| 335 | Installing PostgreSQL Driver and Spring Data JPA Dependencies | 03:00 | |
| 336 | Configuring Datasource Properties | 04:48 | |
| 337 | Create Customer Table | 04:51 | |
| 338 | Entity | 03:44 | |
| 339 | Inspecting The Database | 02:29 | |
| 340 | Column Contraints | 02:31 | |
| 341 | CustomerRepository | 02:24 | |
| 342 | CustomerJPADataAccessService class | 02:02 | |
| 343 | @Qualifier | 02:48 | |
| 344 | Saving Entities | 04:32 | |
| 345 | Exploring JPA Methods | 03:43 | |
| 346 | The Problem | 01:03 | |
| 347 | Exercise Solution | 01:42 | |
| 348 | Intro | 01:36 | |
| 349 | Chasing Interface | 00:51 | |
| 350 | Override insert customer | 01:27 | |
| 351 | Business Logic for Adding new Customer | 08:36 | |
| 352 | Controller @RequestMapping and @RequestBody | 02:46 | |
| 353 | Testing POST Request | 04:07 | |
| 354 | Exercise | 01:40 | |
| 355 | Exercise Solution | 02:35 | |
| 356 | Exercise | 03:23 | |
| 357 | Exercise Solution | 05:01 |
Get instant access to all 356 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionCourse content
357 lessons · 24h 40m 37sShow all 357 lessons
- 1 Intro 02:34
- 2 Practice Practice Practice 01:03
- 3 Textbook 04:15
- 4 Discord 02:46
- 5 What is Java 03:51
- 6 What can you build with Java 02:56
- 7 Java Usages 06:21
- 8 Compliled vs Interpreted Languages 05:11
- 9 Static vs Dynamic Type Checking 05:23
- 10 Java version history 05:10
- 11 IntelliJ IDEA 03:26
- 12 jetbrains.com/idea 04:48
- 13 Jetbrains ToolBox 03:20
- 14 Quick Word Before We Begin 01:38
- 15 Create Project - Part 1 04:53
- 16 Create Project - Part 2 03:11
- 17 Your First Java Program 02:24
- 18 Compiling and Running via Terminal 03:35
- 19 Fixing Compilation Errors 04:41
- 20 View ByteCode 02:07
- 21 Public Static Void Main 02:46
- 22 Understanding Java Code 03:07
- 23 SOUT Keyboard Shortcut 01:47
- 24 Reserved Keywords 01:57
- 25 Comments 02:28
- 26 Variables 03:59
- 27 Primitives Data Types Difference 04:55
- 28 Numeric Literals with Underscore 01:43
- 29 Arithmetic Operators 03:05
- 30 Increment and Decrement Operators 04:38
- 31 Comparison Operators 02:43
- 32 Short hand re-assignment 03:21
- 33 Naming Variables 03:09
- 34 Strings 06:38
- 35 String API Documentation 02:08
- 36 Reference Types and Objects 05:04
- 37 Reference Types and Objects Diferences 06:16
- 38 Pass py value with Primitives 04:21
- 39 Pass py value with Reference Types 06:31
- 40 Arrays 07:43
- 41 0 and Null Values for Arrays 03:20
- 42 Quick word on Arrays 01:22
- 43 TextBook and Exercises 03:23
- 44 How To Attempt Exercises 06:54
- 45 Quick word on the CLI Project 00:36
- 46 For Loop 05:03
- 47 Loops and Arrays 03:33
- 48 Enhanced For Loop 02:38
- 49 For i vs Enhanced For Loop 02:02
- 50 While Loop 03:06
- 51 Do While 02:38
- 52 If Statements 03:16
- 53 If Statements with Conditions 02:24
- 54 Else If 03:30
- 55 AND Logical Operators 03:52
- 56 OR Logical Operators 04:10
- 57 Logical Operators Recap 02:49
- 58 ! on ifs 01:37
- 59 Dont do this with if statements 01:04
- 60 Switch Statement 04:28
- 61 Data Types for Enums 02:32
- 62 New Switch Expression 03:55
- 63 Packages 02:24
- 64 Creating Packages 03:47
- 65 Exploring Packages 03:01
- 66 Import keyword 06:01
- 67 Optmizing imports 00:50
- 68 Import with fully qualified name 03:49
- 69 No Import for java lang 01:46
- 70 Access Modifiers Intro 01:02
- 71 Public Access Modifier 05:18
- 72 Private 02:26
- 73 Default 04:34
- 74 Recap 06:25
- 75 When To Use Each Access Modifier 01:35
- 76 Static Keyword 07:18
- 77 Methods 03:22
- 78 Method that add 2 numbers 05:12
- 79 Parameters and Arguments 01:35
- 80 Void methods 05:23
- 81 Naming Convention 03:29
- 82 Exercise 01:25
- 83 Exercise Solution 04:07
- 84 Understanding public static void main 06:51
- 85 Program Arguments 05:03
- 86 Type Inference with Var 06:42
- 87 Break Keyword and Loops 02:18
- 88 Continue 03:14
- 89 Return Keyword and Void Methods 02:49
- 90 Final Keyword 06:24
- 91 Enums 09:06
- 92 Enums Methods 04:08
- 93 Implicit and Explicit Type Casting 04:33
- 94 Global and Local Variables 07:04
- 95 Wrapper Classes 06:32
- 96 Working With Strings 08:45
- 97 How Strings are stored in memory 04:04
- 98 Strings are Immutable 02:36
- 99 String Literal vs String Object 04:14
- 100 Comparing Strings with == 04:41
- 101 Comparing Strings with .equals 02:10
- 102 Useful String static Methods 05:18
- 103 LocalDateTime 03:54
- 104 LocalDate and LocalTime 02:43
- 105 Creating Specif Dates 04:56
- 106 ZoneIds 04:05
- 107 Other Date Classes 04:42
- 108 The Problem With double 02:06
- 109 BigDecimal 02:16
- 110 Exploring BigDecimal Methods 04:37
- 111 Scanner 04:14
- 112 NextInt and other data types 03:28
- 113 Outro 01:07
- 114 Intro 02:17
- 115 What is an exception 04:10
- 116 Try Catch 04:31
- 117 Multiple Catch Blocks 04:15
- 118 Using Or Within Catch 02:37
- 119 The Exception Class 07:09
- 120 Finally Keyword 02:06
- 121 Exception Hierarchy 08:11
- 122 Uncheck Exceptions 05:20
- 123 Checked Exceptions 06:59
- 124 Throw and Throws 06:34
- 125 Throwing Exceptions 08:25
- 126 When To Use Checked VS Unchecked Exeptions 01:33
- 127 Creating Custom Exceptions 06:31
- 128 Creating Files 06:02
- 129 Writing To Files 08:27
- 130 Reading from Files 04:09
- 131 Try with Resources 04:40
- 132 Intro 02:09
- 133 Your first class 03:57
- 134 Setters 05:44
- 135 Getters 02:56
- 136 Constructors 04:55
- 137 Default Constructors 02:25
- 138 Multiple Contructors 04:11
- 139 ToString 06:26
- 140 The Inside Constructors 03:27
- 141 The This Keyword 06:14
- 142 Everything in Java is an Object 07:49
- 143 @Override 02:53
- 144 Comparing Objects with == 04:56
- 145 Comparing Obects with .equals 05:13
- 146 Generating Equals method 04:02
- 147 Equals Explained 06:49
- 148 Generating Code 04:14
- 149 Person and Cats Example 04:48
- 150 POJOS 03:48
- 151 Java Bean 05:02
- 152 Exercise 03:14
- 153 Exercise Solution 09:21
- 154 Static Keyword 05:49
- 155 When to use Static 06:31
- 156 Static Initlaization Block 06:35
- 157 Instance Block Initializer 05:18
- 158 Static Import 02:36
- 159 Intro 01:41
- 160 Packages 03:08
- 161 Models 04:28
- 162 Service Classes 09:31
- 163 Data Access Object 08:29
- 164 Connecting DAO and Service 08:51
- 165 N Tier Architecture 02:42
- 166 Utitlity Classes 05:04
- 167 Intro 01:26
- 168 The first CLI project task 03:09
- 169 Demo 04:20
- 170 Upcoming Section Intro 02:09
- 171 Encapsulation 02:29
- 172 Encapsulation in Action 05:07
- 173 The Problem With Non Private Fields 06:33
- 174 Data Hiding 06:25
- 175 String Class Encapsulation Example 04:20
- 176 What is Inheritance 02:14
- 177 Implementing Inheritance 04:53
- 178 Create an instance of Programmer 06:09
- 179 Super Keyword 04:20
- 180 Protected Access Modifier 02:44
- 181 Override 05:57
- 182 Single and Multi Level Inheritance 01:11
- 183 Abstract Keyword on Classes 04:05
- 184 Abstract Methods 04:19
- 185 A Quick Word Before we move on 00:34
- 186 Abstract Classes Example 15:33
- 187 What is Polymorphism 07:44
- 188 Car Bicycle Electric Scooter Example 04:28
- 189 Create Your First Interface 02:22
- 190 Implementing Interfaces 07:01
- 191 Putting it all together 07:00
- 192 Constants 02:16
- 193 Default Methods 05:31
- 194 CLI Project Exercise 03:11
- 195 Don't Do This 01:25
- 196 Dependecy Injection 05:07
- 197 Dependency Injection In Action 05:20
- 198 Singletons and @Inject_@Autowire 08:05
- 199 CLI Project Exercise 01:32
- 200 SOLID Principles 03:01
- 201 Single Responsibitiy 04:55
- 202 Open Close 06:01
- 203 Liskov 03:14
- 204 Interface Segragation 02:37
- 205 Dependecy Inversion 06:15
- 206 Null Pointer Exception 06:17
- 207 The Wrong Way Of Dealing with Null 03:48
- 208 Optionals 10:42
- 209 Intro 03:30
- 210 Overview 01:58
- 211 Arrays 02:37
- 212 Working With Arrays 11:28
- 213 2D Arrays 01:38
- 214 Working with 2D Arrays 05:43
- 215 Lists 01:38
- 216 Working With Lists and ArrayList 10:23
- 217 Stack 01:53
- 218 Working With Stacks 07:07
- 219 Queue 01:24
- 220 Working With Queues 06:20
- 221 Linked List 04:18
- 222 Working with LinkedList 08:34
- 223 Sets 01:21
- 224 Working with Sets 07:33
- 225 Map Interface Hierarchy 01:56
- 226 Maps 00:42
- 227 Working With Maps 09:05
- 228 HashCode 02:56
- 229 Working HashCode and HashFunction 07:51
- 230 Outro 03:18
- 231 HackerRank Big Notation 08:37
- 232 CLI Project Exercise 01:33
- 233 Intro 01:05
- 234 Class Cast Exception 04:25
- 235 ClassCastException Example 2 02:31
- 236 Type Parameter and Type Argument 06:08
- 237 Generic Type Naming Convention 02:25
- 238 Generic and Classes 03:45
- 239 Generic and Classes Part 2 06:10
- 240 Generics and Methods 08:28
- 241 Bounded Type Parameters 09:06
- 242 Multiple Bounds 04:24
- 243 Unbounded Wildcard 05:06
- 244 Upper Bounded Wildcards 03:31
- 245 Lower Bounded Wildcards 03:42
- 246 Difference Between Bounded Type Parameters and Wildcards 03:23
- 247 Type Erasure 02:44
- 248 Outro 01:03
- 249 Intro 01:15
- 250 Java Streams 03:30
- 251 How Streams Work 03:27
- 252 Getting Started With Streams 06:30
- 253 Exercise 00:57
- 254 Declarative Solution 01:52
- 255 Imperative Solution 04:08
- 256 Visualise Streams 02:13
- 257 Outro 00:25
- 258 CLI Exercise 01:27
- 259 Maven 02:55
- 260 Installing Maven 02:03
- 261 Verifying Maven Installation 00:47
- 262 Creating a Maven Project 03:40
- 263 Maven Folder Structure 04:09
- 264 Project Object Model (pom.xml) 02:48
- 265 Target Folder 03:41
- 266 Installing Maven Dependencies 07:52
- 267 Using Java Faker 03:54
- 268 .m2 Folder 05:27
- 269 Maven Lifecycles 03:52
- 270 Running Maven Commands 06:09
- 271 Packaging and Jar Files 04:04
- 272 CLI Project Exercise 02:22
- 273 Intro 02:49
- 274 JUnit 01:21
- 275 Installing JUNIT 04:30
- 276 Launching Your First Test 04:36
- 277 Calculator and CalculatorTest Classes 03:49
- 278 Writing Your First Unit Test 05:12
- 279 Assertions 02:44
- 280 Test Scenarios 03:28
- 281 Other JUnit Features 02:19
- 282 CLI Exercise 01:18
- 283 Section Intro 01:12
- 284 Intro Spring Boot 02:31
- 285 Spring Initializr 02:56
- 286 Open the project with IntelliJ 02:04
- 287 The pom.xml 02:27
- 288 Cleanup Few Things 02:18
- 289 JDK 02:47
- 290 Your first Spring Boot Application 04:10
- 291 Embedded Web Serve 03:06
- 292 Configuring Embedded Web Server 04:48
- 293 Your first API 02:53
- 294 @SpringBootApplication 06:07
- 295 Spring Web MVC 05:46
- 296 JSON For Java 07:17
- 297 Java Objects to JSON Objects 05:26
- 298 Introduction to HTTP 04:12
- 299 The Evolution of HTTP 03:15
- 300 HTTP Request and Response Messages 03:49
- 301 HTTP Methods 04:44
- 302 HTTP Status Codes 06:32
- 303 URL 09:01
- 304 API and REST API 03:38
- 305 Public APIs and Other Types 06:37
- 306 Why build APIs 02:55
- 307 Chrome Developer Tools 07:07
- 308 Exploring XHR for our API 04:35
- 309 Inspecting Instagram Network Activity 09:29
- 310 REST Client & Postman 03:49
- 311 IntelliJ REST Clients 05:08
- 312 CRUD and Section Overview 02:05
- 313 Customer Model 02:29
- 314 Fake Database 03:27
- 315 API Endpoint 05:54
- 316 @PathVariable 07:57
- 317 N Tier Architecture 02:02
- 318 Refactor - Controller Service and DAO 10:40
- 319 @RestController @Service @Repository @Component 07:02
- 320 Application Context 04:58
- 321 Inspecting beans 05:09
- 322 Bean Scopes 02:23
- 323 Creating Beans 07:49
- 324 We are not handling error the right way 01:56
- 325 Custom Exception 05:02
- 326 @ResponseStatus 02:28
- 327 Include error Message to Responses 02:04
- 328 Section Intro 00:51
- 329 Postgres and Docker 02:18
- 330 Verifying Docker Installation 02:27
- 331 Postgres DB with Docker compose 04:26
- 332 Connecting to Database 01:34
- 333 Connecting to DB using IntelliJ IDEA 03:22
- 334 Data Source & JPA 02:30
- 335 Installing PostgreSQL Driver and Spring Data JPA Dependencies 03:00
- 336 Configuring Datasource Properties 04:48
- 337 Create Customer Table 04:51
- 338 Entity 03:44
- 339 Inspecting The Database 02:29
- 340 Column Contraints 02:31
- 341 CustomerRepository 02:24
- 342 CustomerJPADataAccessService class 02:02
- 343 @Qualifier 02:48
- 344 Saving Entities 04:32
- 345 Exploring JPA Methods 03:43
- 346 The Problem 01:03
- 347 Exercise Solution 01:42
- 348 Intro 01:36
- 349 Chasing Interface 00:51
- 350 Override insert customer 01:27
- 351 Business Logic for Adding new Customer 08:36
- 352 Controller @RequestMapping and @RequestBody 02:46
- 353 Testing POST Request 04:07
- 354 Exercise 01:40
- 355 Exercise Solution 02:35
- 356 Exercise 03:23
- 357 Exercise Solution 05:01
Related courses
-

Recursion, Backtracking and Dynamic Programming in Java
By: UdemyThis course is about the fundamental concepts of algorithmic problems focusing on recursion, backtracking, dynamic programming and divide and conquer approaches9 hours 46 minutes 17 seconds -

Mastering Java 17
By: Java SpecialistsIn this course, we will thoroughly explore the key innovations in Java 12, 13, 14, 15, 16, and 17.8 hours 20 minutes 27 seconds -

Data 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 knowledge15 hours 53 minutes 4 seconds