Java Master Class
24h 40m 37s
English
Paid
November 1, 2023
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:
Watch Online Java Master Class
Join premium to watch
Go to premium
# | Title | Duration |
---|---|---|
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 |
Similar courses to Java Master Class
The Complete Java Developer
Duration 40 hours 41 minutes 12 seconds
Course
Java Crew #2
Duration 12 hours 12 minutes 58 seconds
Course
Mastering Java 17
Duration 8 hours 20 minutes 27 seconds
Course
RabbitMQ : Messaging with Java, Spring Boot And Spring MVC
Duration 4 hours 3 minutes 11 seconds
Course
Java Programming Bootcamp: Zero to Mastery
Duration 9 hours 15 minutes 36 seconds
Course
Java Data Structures and Algorithms Masterclass
Duration 44 hours 58 minutes 57 seconds
Course
Recursion, Backtracking and Dynamic Programming in Java
Duration 9 hours 46 minutes 17 seconds
Course
Master Spring 6 Spring Boot 3 REST JPA Hibernate
Duration 36 hours 15 minutes 18 seconds
Course
Java Multithreading, Concurrency & Performance Optimization
Duration 5 hours 16 minutes 23 seconds
Course