60 Days Of Java : The Complete Java Masterclass
Published 10/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 27.79 GB | Duration: 51h 30m
Published 10/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 27.79 GB | Duration: 51h 30m
Master Java by building real-world projects. Learn JavaFX, Spring Boot, REST APIs, Microservices, and more!
What you'll learn
Master Java from A to Z: Begin with the basics of Java programming and progress to advanced concepts.
Understand object-oriented programming (OOP) and its core principles—classes, inheritance, polymorphism, and more.
Build real-world projects including a fully functional To-Do App and REST APIs.
Develop desktop applications using JavaFX for sleek, responsive user interfaces.
Work with Spring Boot to build robust, scalable web applications and microservices.
Learn data handling and file processing in Java, including working with databases using Spring Data and H2.
Master concurrency, threads, and asynchronous programming for creating high-performance applications.
Dive into cybersecurity to learn how to secure your applications and data.
Work with RESTful APIs: Learn to design, build, and consume REST APIs using Spring Boot.
Version control with Git & GitHub: Collaborate effectively and manage your codebase.
Clean code and best practices: Learn to write high-quality, maintainable code
Requirements
No prior programming experience is required; I will teach you everything from the beginning.
A PC or Mac with internet access and a Java development environment (we’ll set this up together).
Optional: IntelliJ IDEA (for the integrated development environment portion of the course) and Visual Studio Code.
Description
Welcome to the Complete Java Masterclass, the only course you need to master Java development from the ground up. This comprehensive program is designed to take you from a complete beginner to an advanced-level Java developer by combining a perfect balance of theory, practical projects, and professional-level best practices.We will begin with Java fundamentals—variables, data types, control statements, and loops—ensuring a solid understanding of the language basics. As we progress, you'll learn the ins and outs of object-oriented programming, error handling, collections, file handling, and much more.By the time you finish this course, you'll be equipped to build desktop applications with JavaFX, create REST APIs with Spring Boot, work with databases, implement cybersecurity practices, and develop microservices for scalable, real-world applications.What makes this course unique?Project-based learning: You'll build multiple real-world projects, such as a To-Do Application and a full-featured Expense Tracker with Spring Boot, which will help you apply your knowledge in real-world scenarios.Modern development practices: You'll learn how to develop professional-grade applications using Spring Boot, JavaFX, and REST APIs, ensuring you're up-to-date with industry standards.Comprehensive curriculum: Covering everything from basic Java syntax to multi-threading, dependency injection, and even microservices, everything you need to become a Junior developer.Supportive community and instructor: I'm here to help. Throughout the course, I’ll be answering questions and providing feedback on your code and projects to ensure you stay on track and succeed.Who is this course for?Aspiring software developers who want to learn Java and build professional applications.Existing developers looking to switch to Java or deepen their knowledge of Java and Spring Boot.Students and professionals wanting to build desktop applications with JavaFX or create web services with Spring Boot.Java beginners with no prior experience who are eager to master one of the most widely used programming languages.Course content:You’ll learn Java through a structured path of 60 days, with each day introducing key topics and practical exercises:Day 1-15: Learn Java fundamentals, control statements, loops, arrays, and user input handling.Day 16-20: Dive into object-oriented programming (OOP) with inheritance, polymorphism, encapsulation, and interfaces.Day 21-25: Explore the Java Collections Framework, Exception handling, and best practices for clean, maintainable code.Day 26-30: Build desktop applications with JavaFX, using powerful UI components and animations.Day 31-40: Work with Spring Boot to build robust web applications and RESTful APIs. Learn Git, manage versions, and publish.Day 41-50: Integrate databases, create secure applications, Implement session management, Implement Stateless and Scalable authentication, Role Based Access Control, and Making a robust backend microserviceDay 51-60: Making REST calls from Java desktop apps, Handling Authentication from Desktop apps, Creating an interactive expense tracker UI, Creating Sharable JAR file and using your own appProject Highlights:To-Do Application: Build a feature-rich task manager with JavaFX, learning how to develop interactive desktop applications with clean and maintainable code.Expense Tracker: Develop a scalable, secure Expense Tracker using Spring Boot and REST APIs, where you'll manage data and user authentication.Microservices with Spring Boot: Learn how to break down applications into independent services that communicate over REST APIs.Building REST APIs: Master API creation with Spring Boot, integrating database connectivity and security features.Instructor:My name is Denis Panjuta, and I've been teaching programming for over a decade. I've helped over 500,000 students around the world to master coding through my carefully structured courses. With a background in engineering and years of experience in Java, I’m here to guide you step-by-step to ensure you build professional-level applications with confidence.Your satisfaction guaranteed:I’m so confident in the quality of this course that I offer a 30-day full money-back guarantee. If you're not completely satisfied, you can get a full refund—no questions asked.Get started today!This course is your way to mastering Java programming and stepping into the world of professional software development. Whether you want to build desktop applications, REST APIs, or learn the latest in Java development practices, this is the course for you.Join now and start your journey to becoming a Java developer!
Overview
Section 1: Day 1: Introduction to Java and JDoodle Basics
Lecture 1 Intro
Lecture 2 Introduction to Java
Lecture 3 Quick overview of JDoodle
Lecture 4 Displaying Text on The Screen Intro
Lecture 5 Hello World - Displaying Text
Lecture 6 Understanding the Predefined Code
Lecture 7 Common Errors you can run into
Lecture 8 Search for errors and fix them with Gen AI
Lecture 9 Additional java features
Lecture 10 print vs println - comments and escape sequences
Lecture 11 (Optional theory) Java Under the hood
Lecture 12 Numbers and basic Math
Lecture 13 (Optional) Getting Started with JDoodle
Lecture 14 Let's Practice: Fun with Print Statements
Lecture 15 Solution: Fun with Print Statements
Lecture 16 Outro
Lecture 17 Cheat Sheet of the day
Section 2: Day 2: Variables and Data Types in Java
Lecture 18 Intro
Lecture 19 Variables Intro and Naming Conventions
Lecture 20 Declaring and Initializing variables
Lecture 21 Datatypes Quick Overview
Lecture 22 Datatypes For Whole Numbers
Lecture 23 Datatypes For Floating Point Numbers Float and Double
Lecture 24 Datatype Char
Lecture 25 Datatype Boolean
Lecture 26 Datatype String
Lecture 27 Declaring multiple variables at once
Lecture 28 Arithmetics with variables
Lecture 29 TypeCasting Implicit and explicit
Lecture 30 Let's Practice: Shape Transformation
Lecture 31 Outro
Lecture 32 Cheat Sheet of the day
Section 3: Day 3: Handling User Input and Simple Calculations
Lecture 33 Intro
Lecture 34 Introduction to Handling User Inputs
Lecture 35 User Input with Text and the Scanner Class
Lecture 36 User Input with Numbers and simple addition
Lecture 37 Next Line Buffer behaviour
Lecture 38 Let's Practice: Calorie counter pro
Lecture 39 Solution Calories Counter Pro
Lecture 40 Overview of Operators
Lecture 41 Modulo Operator
Lecture 42 Unary, Increment, Decrement Operators
Lecture 43 Relational Operators
Lecture 44 Compound Operators
Lecture 45 Outro
Lecture 46 Cheat Sheet of the day
Section 4: Day 4: String Manipulation and Comparison
Lecture 47 Intro
Lecture 48 Strings Overview
Lecture 49 Strings Creation and Concatenation
Lecture 50 Strings length and charAt method
Lecture 51 String Comparison with == Comparing References
Lecture 52 String Comparison with equal and equalIgnoreCase
Lecture 53 String Comparison with compareTo - lexicographically
Lecture 54 Cutting strings using substring()
Lecture 55 String replace, toUpperCase, toLowerCase
Lecture 56 String format with strings and numbers
Lecture 57 Operator Precedence and Associativity
Lecture 58 Let's Practice: Simple Interest Calculator
Lecture 59 Solution: Simple Interest Calculator
Lecture 60 Outro
Lecture 61 Cheat Sheet of the day
Section 5: Day 5: Setting Up the Java Development Environment
Lecture 62 Intro
Lecture 63 Overview JDK and IDE
Lecture 64 (Optional) Advanced knowledge about JDK
Lecture 65 Installing the JDK and Java Environment Variable
Lecture 66 Programming Java Without any IDE just the text editor
Lecture 67 Why IDE?
Lecture 68 Installing IntelliJ IDEA
Lecture 69 Setting up IntelliJ and creating our first project
Lecture 70 Some cool features of IntelliJ IDEA
Lecture 71 Autocompletion and closing a project
Lecture 72 Starting from an empty project and unused Variables
Lecture 73 Renaming refactoring
Lecture 74 Budget Exercise Solution
Lecture 75 Let's Practice: Budget Tracker Plus
Lecture 76 Solution: Budget Tracker Plus
Lecture 77 Outro
Section 6: Day 6: Control Statements - If, Else, and Ternary Operators
Lecture 78 Intro
Lecture 79 Control Statements in Java overview
Lecture 80 If Statement
Lecture 81 Nested If Statement
Lecture 82 Logical Operators
Lecture 83 If Statements Exercise Chatbot
Lecture 84 Let's Practice: Chatbot
Lecture 85 Solution: Chatbot
Lecture 86 If Else Control Statements
Lecture 87 Nested If Else Control Statements
Lecture 88 If Else If Else
Lecture 89 If Else If Else - Understanding the Flow using Breakpoints
Lecture 90 Ternary Operators
Lecture 91 Let's Practice: Galaxy Weather Advisor
Lecture 92 Solution - Galaxy Weather Advisor
Lecture 93 Outro
Lecture 94 Cheat Sheet of the day
Section 7: Day 7: Switch Statements and Enums in Java
Lecture 95 Intro
Lecture 96 Presentation of the Day - Switch Control Statement
Lecture 97 Basic Switch Statement
Lecture 98 Default and break
Lecture 99 Break and fall through
Lecture 100 If Statements vs Switch Statements
Lecture 101 Switch Statements with Char
Lecture 102 Switch Statements with Strings
Lecture 103 Enums and Switch
Lecture 104 Why Enums
Lecture 105 Switch within switch and prep for exercise
Lecture 106 Text based Adventure Game with Switch Statement
Lecture 107 Outro
Lecture 108 Cheat Sheet of the day
Section 8: Day 8: Loops - For, While, and Do-While Loops
Lecture 109 Intro
Lecture 110 Loops Introduction Presentation For Loop
Lecture 111 For Loops
Lecture 112 Let's Practice: Star Pyramid Builder (Beginner)
Lecture 113 Nested For Loops
Lecture 114 Pyramids with for loops
Lecture 115 Interview Question Fibonacci Sequence
Lecture 116 Job Interview question: Fibonacci sequence
Lecture 117 While Loop
Lecture 118 Do While Loop
Lecture 119 Break Keyword in Loops
Lecture 120 Continue Keyword in Loops
Lecture 121 Labels and break and continue
Lecture 122 Let's Practice: Controlling loops
Lecture 123 Interview Question Harshad Number
Lecture 124 Job Interview Question: Harshad Number
Lecture 125 Outro
Lecture 126 Cheat Sheet of the day
Section 9: Day 9: Introduction to Arrays
Lecture 127 Intro
Lecture 128 Introduction to Arrays
Lecture 129 Declaring, Initializing, Accessing and Modifying arrays
Lecture 130 Array Length and For Loops to iterate through arrays
Lecture 131 Enhanced For Loop - For Each Loop
Lecture 132 Sum, min and max of an array
Lecture 133 Rearranging Challenge
Lecture 134 Arrays Class and common methods
Lecture 135 Arrays toString and sort Methods
Lecture 136 Array binarysearch method
Lecture 137 CopyOf and by value vs by reference
Lecture 138 Arrays Fill and equals
Lecture 139 Let's Practice: Array Shuffle
Lecture 140 Solution: Array Shuffle
Lecture 141 Outro
Section 10: Day 10: Working with 2D Arrays
Lecture 142 Intro
Lecture 143 2D Arrays overview
Lecture 144 2D Arrays - Declaration, initialization and iteration
Lecture 145 2D Arrays - Easier initialization
Lecture 146 2D Arrays - Enhanced for loops
Lecture 147 2D Arrays - get the largest number
Lecture 148 2D Arrays - get the sum of all items in a 2d array
Lecture 149 2D Arrays - Exercise
Lecture 150 Job Interview Question: Diagonal Sum
Lecture 151 Solution: Job Interview Question
Lecture 152 ArrayList Intro
Lecture 153 ArrayList and its methods
Lecture 154 Let's Practice: Space Travel Simulator
Lecture 155 Solution: Space Travel Simulator
Lecture 156 Outro
Section 11: Day 11: Methods and Their Uses
Lecture 157 Intro
Lecture 158 Presentation Methods intro
Lecture 159 Void Method
Lecture 160 Void Methods with parameters
Lecture 161 Sandwichmaker 3000
Lecture 162 Pass by Value vs Pass by reference
Lecture 163 Method that returns something
Lecture 164 Subtract Method
Lecture 165 Generating random numbers
Lecture 166 Intro Word Scramble Game
Lecture 167 Building a Word Scramble Game
Lecture 168 Interview Question: Validate an Email address
Lecture 169 Outro
Lecture 170 Cheat Sheet of the day
Section 12: Day 12: Recursive Methods and Call Stacks
Lecture 171 Intro
Lecture 172 Recursive Methods Intro
Lecture 173 Recursive Methods in action - Factorial
Lecture 174 Recursive Methods base case and recursive case
Lecture 175 Recursive Methods common error - infinite recursion
Lecture 176 Creating our secret language app - atbash method
Lecture 177 Creating our secret language app - encoding
Lecture 178 Creating our secret language app - decoding
Lecture 179 Let's Practice: Atbash cipher
Lecture 180 Understanding the Method Call stack
Lecture 181 Understanding the Method Call stack with debugging
Lecture 182 Method stack with recursive methods and overdoing it
Lecture 183 For loop alternative for factorials
Lecture 184 Visualising high memory usage
Lecture 185 Alternative solution
Lecture 186 Magic Mirror Exercise
Lecture 187 Let's Practice: The Magic Mirror: Reflecting Strings with Recursion
Lecture 188 Outro
Lecture 189 Cheat Sheet of the day
Section 13: Day 13: Exercises on Arrays and Number Handling
Lecture 190 Intro
Lecture 191 Exercise 1 - Remove duplicate elements from an array
Lecture 192 Solution and Explanation
Lecture 193 Exercise 2 - Number of Digits
Lecture 194 Solution and Explanation
Lecture 195 Outro
Section 14: Day 14: Binary Search and Number Guessing Game
Lecture 196 Intro
Lecture 197 Binary Search explanation
Lecture 198 Binary Search Introduction and how it works
Lecture 199 Game Introduction
Lecture 200 Numbers Guessing Game Solution
Lecture 201 Explanation and Example Interaction
Lecture 202 Outro
Section 15: Day 15: Project: Todo App in Java
Lecture 203 Intro
Lecture 204 The Problem Statement. What do we want from the Todo App
Lecture 205 The Problem Solution: Step by step Building the Todo App
Lecture 206 Outro
Section 16: Day 16: Object-Oriented Programming Basics
Lecture 207 Intro
Lecture 208 Introduction to OOP presentation
Lecture 209 Creating our first class
Lecture 210 Creating our first class method
Lecture 211 Using Member Variables
Lecture 212 Function vs Method
Lecture 213 Default Constructor
Lecture 214 Parameterized Constructor
Lecture 215 The this keyword
Lecture 216 Let's Practice: Working with array of Objects
Lecture 217 Constructor Overloading
Lecture 218 The public, default, and private access modifiers
Lecture 219 Setters and understanding why they are important
Lecture 220 Let's Practice: Generating Math Quizzes
Lecture 221 Outro
Lecture 222 Cheat Sheet of the day
Section 17: Day 17: Understanding the this Keyword and Static Methods
Lecture 223 Intro
Lecture 224 Understanding the This keyword better
Lecture 225 getInstance vs Reference with this
Lecture 226 Method Chaining
Lecture 227 Using Objects as Parameters
Lecture 228 Copy Constructor
Lecture 229 The static keyword
Lecture 230 Why can't a non-static method be called from a static method
Lecture 231 Let's Practice: Dice Rolling Adventure
Lecture 232 Dice Game Exercise Solution
Lecture 233 Outro
Lecture 234 Cheat Sheet of the day
Section 18: Day 18: Inheritance and the Super Keyword
Lecture 235 Intro
Lecture 236 Inheritance overview
Lecture 237 First steps in inheritance
Lecture 238 Super keyword presentation
Lecture 239 Super keyword with constructors
Lecture 240 Super keyword with methods
Lecture 241 Multi-Level Inheritance
Lecture 242 Multi-Level Inheritance demo
Lecture 243 Method overriding
Lecture 244 Method overriding demo
Lecture 245 Protected access specifier
Lecture 246 Packages and all Access specifiers
Lecture 247 Let's Practice: Word Guessing Game
Lecture 248 Outro
Section 19: Day 19: Polymorphism and Abstract Classes vs. Interfaces
Lecture 249 Intro
Lecture 250 OOP3 Polymorphism Intro
Lecture 251 Hierarchical Inheritance in action
Lecture 252 Why Polymorphism
Lecture 253 Static Polymorphism Method Overloading
Lecture 254 Dynamic Polymorphism Method dispatching
Lecture 255 (Optional) Runtime Polymorphism
Lecture 256 Abstraction - Abstract and Interface
Lecture 257 Interface syntax
Lecture 258 Interface in action
Lecture 259 Abstract classes vs Interfaces
Lecture 260 Abstract classes vs Interfaces - real world example
Lecture 261 Encapsulation
Lecture 262 Outro
Section 20: Day 20: Course Project Overview
Lecture 263 Intro
Lecture 264 Presentation about the project - what you will gain
Lecture 265 Outro
Section 21: Day 21: Collections Framework Introduction
Lecture 266 Intro
Lecture 267 Collections Framework Intro
Lecture 268 The Depths of Arraylists heritage
Lecture 269 Overview of List Classes
Lecture 270 LinkedList vs ArrayList - Speed Test
Lecture 271 Vector vs ArrayList vs Sync Arraylist - Speed Test
Lecture 272 Stack
Lecture 273 Set overview
Lecture 274 Hashset
Lecture 275 Hash Table
Lecture 276 LinkedHashSet
Lecture 277 TreeSet
Lecture 278 Interview Question: Duplicates with index difference
Lecture 279 Interview Question Solution
Lecture 280 Outro
Section 22: Day 22: Queue and Map Interface
Lecture 281 Intro
Lecture 282 Queue and Map Presentation intro
Lecture 283 PriorityQueue
Lecture 284 ArrayDeque
Lecture 285 Map interface and its classes
Lecture 286 TreeMap
Lecture 287 Hashmap
Lecture 288 LinkedHashmap
Lecture 289 HashTable and Concurrenthashmap
Lecture 290 Iterator Interface
Lecture 291 Let's Practice: Word Frequency Counter
Lecture 292 Solution: Word Frequency Counter
Lecture 293 Outro
Section 23: Day 23: Exception Handling in Java
Lecture 294 Exception Handling Presentation
Lecture 295 Try and Catch
Lecture 296 Using multiple Catch Blocks
Lecture 297 Finally keyword
Lecture 298 Rethrowing and Propagation Intro
Lecture 299 Throw Keyword
Lecture 300 ReThrowing Exceptions
Lecture 301 Exception Propagation
Lecture 302 Combining Exception Propagation with Exception rethrowing
Lecture 303 Custom exceptions intro
Lecture 304 Creating custom exceptions
Section 24: Day 24: Java I/O - Working with Files and Streams
Lecture 305 Java IO Intro
Lecture 306 ByteArrayInputStream
Lecture 307 Output Classes Intro
Lecture 308 Try with resources and write text to a file using FileOutputStream
Lecture 309 Try with resources with two resources and write text to a file using BufferedOut
Lecture 310 Storing data in all kinds of data types using DataOutputStream
Lecture 311 Input Classes Intro
Lecture 312 Reading data types from a file using DataInputStream
Lecture 313 Reading data from a txt file using BufferedInputStream
Lecture 314 File Write Intro
Lecture 315 Buffered vs Unbuffered Stream Speeds
Lecture 316 Handling Files with the File Class
Lecture 317 Checking if file exists and create it if not
Lecture 318 Renaming Files with the File Class
Lecture 319 Deleting a file using the file class
Lecture 320 Creating Folders Directories Paths using the File Class
Lecture 321 Displaying all files within a folder using the File Class
Lecture 322 Serialization and Deserialization Intro
Lecture 323 Serialization in action
Lecture 324 Deserialization in action
Lecture 325 Final Thoughts about De-Serialization and the transient keyword
Section 25: Day 25: FXML and JavaFX Introduction
Lecture 326 FXML Intro
Lecture 327 Java Based UI vs FXML in larger projects
Lecture 328 Understanding XML and more about FXML
Lecture 329 Understanding the FXML in the generated file
Lecture 330 Using Layouts within Layouts VBox and HBox in FXML
Lecture 331 Using Comments in XML
Lecture 332 MVC overview
Lecture 333 Events in FXML and Alert onMouseEntered
Lecture 334 Gridpane
Lecture 335 styling and alignment
Lecture 336 Style property
Lecture 337 Alignment property
Lecture 338 Why CSS makes sense
Lecture 339 Borderpane in FXML
Lecture 340 style.css styling our ui
Lecture 341 more styling and hover effect
Section 26: Day 26: JavaFX and Basic UI Components
Lecture 342 JavaFX Overview
Lecture 343 Gradle and GroupID
Lecture 344 Running our first GUI App
Lecture 345 JavaFX File Structure overview
Lecture 346 JavaFX Basics - Stage, Scene, Pane
Lecture 347 Understanding the HelloApplication.java file
Lecture 348 Loading a Resource of fxml type
Lecture 349 Creating our own UI with java code
Lecture 350 Lambda Expressions theory
Lecture 351 Lambda Expressions Calculator
Lecture 352 Lambda Expressions vs MultiOperations Implementations
Lecture 353 Lambda Expressions why use lambdas
Lecture 354 Lambda Expressions as Parameters
Lecture 355 Single Argument Lambda expressions
Section 27: Day 27: JavaFX Layouts and Scene Builder
Lecture 356 JavaFX Shapes Presentation
Lecture 357 JavaFX Adding a Rectangle to a pane
Lecture 358 JavaFX Adding a Circle and Line to a pane
Lecture 359 JavaFX Layout Types
Lecture 360 JavaFX Layout HBox
Lecture 361 JavaFX Layout VBox
Lecture 362 JavaFX Layout Stackpane
Lecture 363 JavaFX Layout FlowPane
Lecture 364 JavaFX Layout GridPane
Lecture 365 BorderPane
Lecture 366 Installing Scene Builder
Lecture 367 Drag and Drop UI and connect it to our app
Lecture 368 Modifying which event will be triggered and how FXML, Controller and Scene Build
Lecture 369 Creating a Form with Scene builder
Section 28: Day 28: Event Handling and Data Binding in JavaFX
Lecture 370 Handling Keyboard events intro
Lecture 371 Building a JavaFX Project from scratch and understanding how the files interact
Lecture 372 Using Key Events and EventHandlers as well as EventListeners
Lecture 373 Mouse Events intro
Lecture 374 Get the Mouse Position via Events
Lecture 375 Databinding Intro
Lecture 376 Databinding in action - UI Setup
Lecture 377 Databinding in action
Lecture 378 Move from one Scene to another
Section 29: Day 29: Animations in JavaFX
Lecture 379 Intro Animations
Lecture 380 Translate Transition intro
Lecture 381 Translate Transition project prep
Lecture 382 Translate Transition move an item via animation
Lecture 383 Chain Animations
Lecture 384 Start and stop animations with a button click
Lecture 385 Fade Transition
Lecture 386 Rotate Transition
Lecture 387 ScaleTransition
Lecture 388 Sequential- and ParallelTransition
Lecture 389 Using ImageViews
Section 30: Day 30: Building a To-Do Application with JavaFX
Lecture 390 Why building the To-Do App is a good idea
Lecture 391 What we will build today
Lecture 392 Role of the launcher class
Lecture 393 Setting up the project from scratch
Lecture 394 Understanding Gradle
Lecture 395 Intro to MaterialFX and implementing it
Lecture 396 Adding MaterialFX to Scene Builder
Lecture 397 Fixing an error in the module-info.java file
Lecture 398 Setting up the Main Class with the Theme and Stylesheet
Lecture 399 Setting up our main interface
Lecture 400 Setting up the task card and task controller
Lecture 401 Setting up the main Controller and Testing the App with Dummy Data
Lecture 402 Styling the ToDo App with CSS
Section 31: Day 31: Adding Features to the To-Do Application
Lecture 403 What we will build today
Lecture 404 Intro to DTOs
Lecture 405 Creating a DTO TaskDTO
Lecture 406 Changing the architecture of our app
Lecture 407 Color Tasks based on status demo
Lecture 408 Add Task Intro
Lecture 409 Setting up the task dialog UI
Lecture 410 Displaying the new task dialog
Lecture 411 Adding Tasks via the dialog
Lecture 412 Styling the dialog
Lecture 413 View Task Dialog Intro
Lecture 414 View Task Dialog Prep
Lecture 415 Adding an ID to our Tasks
Lecture 416 Displaying Task in Dialog
Lecture 417 Adding Comments and viewing them
Lecture 418 Updating Tasks
Section 32: Day 32: Enhancing To-Do Application - Sorting and Filtering
Lecture 419 Intro for the sorting mechanism
Lecture 420 Adding Sorting by Status
Lecture 421 Adding Filter by Status Logic
Lecture 422 Saving and Loading our Tasks permanently
Lecture 423 Adding a Delete Feature
Section 33: Day 33: Git and GitHub Integration
Lecture 424 Version Control and Git Overview
Lecture 425 Installing Git on Windows
Lecture 426 Configure git user details
Lecture 427 Git Commands
Lecture 428 GitHub Intro
Lecture 429 Git Commands Basics in action
Lecture 430 Git Branches and Merging
Lecture 431 SSH and connecting git to github
Lecture 432 SSH and connecting git to github demo
Lecture 433 Connecting our Project to github
Lecture 434 Let the IDE share your project to github
Lecture 435 Commit and Push in IDE
Section 34: Day 34: Dependency Injection in Spring
Lecture 436 Spring Intro
Lecture 437 Where is spring used
Lecture 438 Types of Dependency Injection (DI)
Lecture 439 Constructor Dependency Injection
Lecture 440 Setter Dependency Injection
Lecture 441 More on Setter DI
Lecture 442 When to use Constructor DI and when Setter DI
Section 35: Day 35: Beans and Inversion of Control (IoC) with Spring Boot
Lecture 443 Introduction to Beans and IoC
Lecture 444 Lifecycle of beans
Lecture 445 Understanding Beans IoC and ApplicationContext better
Lecture 446 Advantages of using ApplicationContext
Lecture 447 Spring Initializr and ApplicationContext Beans
Lecture 448 Making a class a bean, and retrieving it from context
Lecture 449 Clean Spring project and more beans
Lecture 450 AutoWired - Field Dependency Injection
Lecture 451 Clean IoC Architecture with CommandLineRunner and Spring Boot
Section 36: Day 36: Autowiring and Component Scanning in Spring
Lecture 452 Autowiring Intro
Lecture 453 Autowiring Modes
Lecture 454 Autowiring by Type
Lecture 455 Autowiring by Name
Lecture 456 Autowiring by Constructor
Lecture 457 No Autowiring - Manual Wiring
Lecture 458 @Component and @Service
Lecture 459 @Configuration and @ComponentScan
Lecture 460 @Configuration and @ComponentScan in Action
Section 37: Day 37: Generics and Bounded Types
Lecture 461 Generics and Type Parameter
Lecture 462 Why not just use an ObjectPrinter
Lecture 463 Bounded Generics
Lecture 464 Generic Methods
Lecture 465 Generic Methods - swap items in an array
Lecture 466 Generic Methods with multiple generic parameters
Lecture 467 Bounded Type Parameters in Generic Methods
Section 38: Day 38: Dependency Injection and @Qualifier in Spring
Lecture 468 What we will cover today
Lecture 469 Field Injection with @Autowired
Lecture 470 Understanding DI Hierarchy
Lecture 471 Constructor DI vs Field DI
Lecture 472 @Qualifier vs @Primary intro
Lecture 473 Understanding @Service and @Qualifier demo
Lecture 474 @Primary demo
Section 39: Day 39: Spring Boot and MVC ChatApp
Lecture 475 Spring vs Spring Boot presentation
Lecture 476 Spring Boot Auto Configuration, Setup and @PostConstruct
Lecture 477 The Power of @PostConstruct
Lecture 478 Spring MVC Explained
Lecture 479 CommandLineRunner
Lecture 480 MVC ChatApp - Models and Service
Lecture 481 MVC ChatApp - Controller and Testing
Section 40: Day 40: Introduction to Web Development and REST APIs
Lecture 482 Introduction to Web Development HTTP GET, POST, PUT, DELETE and API
Lecture 483 REST, Restful, Restless, CRUD
Lecture 484 HTTP vs HTTP Methods, REST vs API
Lecture 485 Our First REST API Server localhost 8080
Lecture 486 HTTP Status Codes and ResponseEntity
Lecture 487 @Controller vs @RestController and a bit of JSON
Lecture 488 Using @PathVariable
Lecture 489 Using @RequestParam for Query Parameters
Lecture 490 Using @RequestParam and @PathVariable and when to use what
Section 41: Day 41: JSON Processing and Lombok Annotations
Lecture 491 Intro for the day and Postman
Lecture 492 Installing Postman and quick test
Lecture 493 JSON Basics, Jackson and ObjectMapper
Lecture 494 JSON Serialization with ObjectMapper and Jackson
Lecture 495 JSON Deserialization with ObjectMapper and Jackson
Lecture 496 Modify JSON dynamically using ObjectNode and JSONNode
Lecture 497 Lombok Annotations
Lecture 498 @JsonProperty and @JsonPropertyOrder
Lecture 499 @JsonIgnore and @JsonInclude
Lecture 500 Lombok @Setter and @Getter
Lecture 501 Lombok @ToString, @NoArgsConstructor, @AllArgsConstructor, @EqualsAndHashCode
Section 42: Day 42: CRUD Operations with Spring Boot RESTful Services
Lecture 502 SpringBoot RESTful services POST and PUT
Lecture 503 Post request and @RequestBody
Lecture 504 POST with Postman
Lecture 505 Storing Products in a JSON and Updating our Request
Lecture 506 Get Products and Get Product by ID
Lecture 507 PUT operation - Updating the database
Lecture 508 Delete operation CRUD
Section 43: Day 43: Expense Tracker Application
Lecture 509 Expense @Data Class
Lecture 510 Loading the Expenses
Lecture 511 Filtering by Category like a pro using stream map
Lecture 512 Refactoring, Filtering and Making Services
Lecture 513 Testing our other endpoints
Lecture 514 FindById
Lecture 515 AtomicLong and Adding Items with PUT
Lecture 516 Updating with PUT
Lecture 517 Deleting Expenses
Section 44: Day 44: Spring Data Access and H2 Databases
Lecture 518 Spring Data Access Intro
Lecture 519 Spring Data Access Advantages
Lecture 520 JDBC and JPA
Lecture 521 Hibernate
Lecture 522 Understanding different Database Types and H2 Database
Lecture 523 Intro to H2 Databases
Lecture 524 Setting up our H2 Project and application.yml
Lecture 525 Setting up an Entity
Lecture 526 Repository, Service, Controller and Testing
Lecture 527 Testing the h2 console
Section 45: Day 45: Integrating PostgreSQL with Expense Tracker
Lecture 528 H2 for our Expense Tracker Intro
Lecture 529 Adding dependencies and the application.yml to our expense tracker app
Lecture 530 Adding the Entity and the Repository
Lecture 531 Adding our ExpenseServiceImplDb
Lecture 532 Neon PostgreSQL Database overview
Lecture 533 Connecting to a PostgreSQL Cloud Database
Section 46: Day 46: Spring Security Basics and User Authentication
Lecture 534 Spring Security Intro. Authentication, Authorization etc
Lecture 535 Security Config Class
Lecture 536 Setting up Security Config Class and testing authentication
Lecture 537 Requestmatchers permitAll for public pages
Lecture 538 Customizing UserDetailsService for Authentication
Lecture 539 Creating an inmermory User and checking out bcrypt
Lecture 540 Managing User Roles
Lecture 541 Password encryption and hashing with bcrypt
Lecture 542 Adding Password encryption and hashing with bcrypt
Lecture 543 Logout, Sessions, Cookies and more
Lecture 544 Implementing Logout to our demo
Section 47: Day 47: Session Management and JWT Authentication
Lecture 545 Session Management Intro
Lecture 546 Session Demo
Lecture 547 Session Timeout Demo
Lecture 548 State vs Stateless Authenticatin JWT, etc.
Lecture 549 Stateless Authenticatin using JWT
Lecture 550 JWT in Action with Postman and rundown of JwtUtil einschub
Lecture 551 JWT in Action with Postman and rundown of JwtUtil
Lecture 552 JwtAuthFilter rundown
Section 48: Day 48: User Sign-Up and JWT Integration
Lecture 553 User Sign UP and Log in Intro
Lecture 554 Setting up the H2 In Memory DB
Lecture 555 Sign up controller and Service Intro
Lecture 556 Sign up new user
Lecture 557 Adding JWT to our Signup and login - Intro
Lecture 558 Adding JWT to our Signup and login - demo
Lecture 559 Login via database user data - demo
Lecture 560 Day summary
Section 49: Day 49: Advanced JWT Implementation and Security Configuration
Lecture 561 Intro Security for our Expense tracker
Lecture 562 Adding the SecurityConfig to our Expense Tracker
Lecture 563 AuthController Overview
Lecture 564 AuthController Implementation
Lecture 565 JWTUtil class overview
Lecture 566 JWTUtil class implementation
Lecture 567 JWTAuthFilter intro
Lecture 568 Setting up the AppUser, Repository and signup endpoint
Lecture 569 Setting up the UserDetailServiceImpl
Lecture 570 JwtFilter
Lecture 571 Adding the Filter before Spring security authenticates
Lecture 572 Creating the User Login Flow intro
Lecture 573 Creating the AuthServiceImpl class
Lecture 574 Separating the concerns
Section 50: Day 50: Role-Based Access Control (RBAC) and Final Touches to Expense Tracker
Lecture 575 Expense Tracker Final Touches RBAC intro
Lecture 576 RBAC and middleware
Lecture 577 Mapping Users to expenses Part 1
Lecture 578 Mapping Users to expenses part - Part 2
Lecture 579 Adjusting the Controller
Lecture 580 Testing user-based database access
Lecture 581 Implementing RBAC - Intro
Lecture 582 Prepping UserRoles and hardcoding Admin
Lecture 583 AdminService and AdminController
Section 51: Day 51: Expense Tracker Authentication with JavaFX
Lecture 584 Expense Tracker Authentication with JavaFX Intro
Lecture 585 Setting up JavaFX Project and HTTPClient
Lecture 586 Setting up MaterialFX
Lecture 587 Setting up Login, Signup and Loading Views and Controllers
Lecture 588 Setting up Preferences that hold the JWT Token
Lecture 589 Moving between Login and Signup Scenes
Lecture 590 Creating the HTTPResonse sendPostRequest method
Lecture 591 Finalizing actual signup via our UI and creating the AuthService class
Lecture 592 Adding the login feature
Section 52: Day 52: Expense Tracker: Rendering User expenses (expense-ui)
Lecture 593 About the Day
Lecture 594 Creating the Main UI
Lecture 595 Adding Fields to the Expense Table
Lecture 596 Explaining the Edit and Delete buttons
Lecture 597 Fetching Expenses from API
Lecture 598 Handling Authentication Failure
Lecture 599 What Next?
Section 53: Day 53: Expense Tracker: Add Expense UI (add-expense-ui)
Lecture 600 About the Day
Lecture 601 Designing the Add Expense View
Lecture 602 Handling Form Validations
Lecture 603 Calling API to add expense
Lecture 604 Updating the main screen
Section 54: Day 54: Expense Tracker: Editing Expense (edit-expense-ui)
Lecture 605 About the day
Lecture 606 Assignment! Practice your skills!
Section 55: Day 55: Expense Tracker: Viewing Statistics
Lecture 607 About the day
Lecture 608 Assignment! Practice your skills!
Section 56: Day 56: Expense Tracker: Building and Sharing
Lecture 609 About the day
Lecture 610 Assignment! Practice your skills!
Section 57: Day 57: Mastering Java Interview Questions
Lecture 611 Introduction to Java Interview Process
Lecture 612 Common Java Interview Questions
Lecture 613 Java Coding Challenges
Lecture 614 How to Prepare for Whiteboard Coding Interviews
Section 58: Day 58: Behavioural Interview Questions and Soft Skills
Lecture 615 Introduction to Behavioral Interviews
Lecture 616 Common Behavioral Interview Questions
Lecture 617 Developing Communication Skills as a Developer
Lecture 618 Leadership and Initiative in a Development Team
Section 59: Day 59: Building Your Java Developer Portfolio and Applying for Jobs
Lecture 619 Introduction to Job Search Strategy
Lecture 620 Creating a Developer Portfolio
Lecture 621 Resume and Cover Letter Tips
Lecture 622 Technical and Non-Technical Skills Employers Look For
Lecture 623 Applying for Jobs and Preparing for Remote Interviews
Section 60: Day 60: Continuous Learning and Career Growth as a Java Developer
Lecture 624 The Importance of Lifelong Learning in Software Development
Lecture 625 Contributing to Open Source Projects
Lecture 626 Exploring Certifications for Career Growth
Lecture 627 Mentoring and Leadership in a Developer Career
Lecture 628 Building a Long-Term Career Plan
Aspiring software developers who want to learn Java and build professional applications.,Existing developers looking to switch to Java or deepen their knowledge of Java and Spring Boot.,Students and professionals wanting to build desktop applications with JavaFX or create web services with Spring Boot.,Java beginners with no prior experience who are eager to master one of the most widely used programming languages.